Você está na página 1de 162

Sumrio

Sumrio ......................................................................................................................................................... 1

1.

Objetivo....................................................................................................................................... 2

2.

Integrao ................................................................................................................................... 3

3.

Pr-requisitos: Instalao, Implantao e Utilizao .................................................................. 9

4.

Integrao Banco a Banco ........................................................................................................ 9

5.

Integrao WebService ............................................................................................................ 17

6.

Integrao - nativa ...................................................................................................................... 20

7.

Controle de Verso .................................................................................................................... 155

8.

Fluxo das Informaes ................................................................................................................ 156

9.

Como fazer .................................................................................................................................. 159

Integrao TAF

Integrao TAF
Ttulo do documento
1. Objetivo
Disponibilizar no produto TAF rotinas de integrao que podero ser executadas tanto via menu como via job,
ou seja, rotinas scheduladas conforme configurao de Schedule do sistema (SIGACFG - Configurador).
As formas de integrao so disponibilizadas de 2 (duas) maneiras:
1. Integrao Nativa
Neste cenrio a integrao do ERP grava as informaes diretamente nas entidades do TAF, utilizando o
prprio MVC. Este cenrio serve para quando o ERP utilizar a mesma base (Dicionrio de Dados/RPO) do
produto TAF.
2. Integrao banco-a-banco
Neste cenrio utiliza-se conexo banco-a-banco para realizar a integrao das informaes. Este conceito
utiliza a prpria ferramenta DBAcces/TopConnect.
Com isso, a aplicao grava em uma tabela compartilhada e sob seu domnio, ou seja, no mesmo database,
o XML criado por sua rotina de integrao. Aps grav-lo, o TAF atravs de suas rotinas de monitoramento,
processar os XMLs disponveis e transportar para uma tabela de controle dentro de seu ambiente de
processamento (TAF).

Verso 1.0

Integrao TAF

2. Integrao

ERP
LOGIX
PROTHEUS

TAFAINTEG1
RET

ST1

TSS

TAF
TAFAINTEG3

TAFAINTEG2
TABELAS
TAF

ST2

TAFAINTEG4

TAFAINTEG0

TAFAINTEG5

Verso 1.0

Integrao TAF
Ttulo do documento
TAFAINTG0
Programa(s): Dever utilizar o nome Integrao ERP x TAF.
Descrio: Busca as informaes na ST1 no ERP e integra para a ST2 (TAF). Alterando o flag desses registros na ST1
(STATUS=2 - Integrados).
Tabela(s): Dever utilizar a(s) tabela(s) TAFST1 (Tafe sse T Um), TAFST2 (Tafe sse T Dois). Ambas tratam-se
de tabelas compartilhadas sendo ST na base de dados do ERP e ST2 na base de dados do TAF.
Opes de menu: Ser uma rotina de processamento que ter perguntas bsicas para filtros do processamento.

TAFAINTG1
Programa(s): Dever utilizar o nome Limpar TAFST1.
Descrio: Verifica os registros na TAFST1 (STATUS=2) integrados para limp-lo, tornando ST1 voltil.
Tabela(s): Dever utilizar a(s) tabela(s) TAFST1 (Tafe sse T Um) que a tabela compartilhada na base de dados
do ERP.
Opes de menu: Ser uma rotina de processamento que ter perguntas bsicas para filtros do processamento.

TAFAINTG2
Programa(s): Dever utilizar o nome Integrao TAFST2 x TAF.
Descrio: Realiza a integrao da TAFST2 para as tabelas internas do TAF. Integra as informaes mesmo com
inconsistncias alimentando o flag nas tabelas de registros.
Tabela(s): Dever utilizar a(s) tabela(s) TAFST2 (Tafe sse T Dois).
Opes de menu: Ser uma rotina de processamento que ter perguntas bsicas para filtros do processamento.

TAFAINTG3
Programa(s): Dever utilizar o nome Validaes dos Dados.
Descrio: Rotina que varre a base de dados procurando as inconsistncias para apresent-las no monitor de
integraes.
Tabela(s): Dever utilizar a(s) tabela(s) TAFST2 (Tafe sse T Dois) e todas as tabelas de base de dados do TAF.
Opes de menu: Ser uma rotina de processamento que ter perguntas bsicas para filtros do processamento.

TAFAINTG4
Programa(s): Dever utilizar o nome Transmitir eventos.
Descrio: Rotina verifica as informaes vlidas para transmisso ao TSS.
Tabela(s): Dever utilizar a(s) tabela(s) da base de dados TAF.
Opes de menu: Ser uma rotina de processamento que ter perguntas bsicas para filtros do processamento.

TAFAINTG5
Programa(s): Dever utilizar o nome Monitorar informaes TAF.
Descrio: Busca retorno dos registros transmitidos ao TSS e alimentar protocolo.
Tabela(s): Dever utilizar a(s) tabela(s) da base de dados TAF.
Opes de menu: Ser uma rotina de processamento que ter perguntas bsicas para filtros do processamento.

Verso 1.0

Integrao TAF

Todas as tabelas referentes aos eventos tero o grupo de campos abaixo:


Campo

???_ID

Tipo

Tamanho

Ttulo

ID

Descrio

Identificador do registro

Picture

@!

Uso

Usado por todos os mdulos e No Obrigatrio.

Inic.Padro

GetSx8Num("???","???_ID")

Browse

Sim

Visual

Visualizar

Contexto

Real

Help de Campo

Representa o cdigo de identificao do registro. Este cdigo controlado


internamente pelo sistema de forma incremental e nico por filial.

Campo

???_VERSAO

Tipo

Grupo Campos

071

Tamanho

14

Ttulo

Id. Ver. Reg

Descrio

ID da verso do registro

Picture

@!

Uso

No Usado

Propriedade

Microsiga

Browse

No

Visual

Alterar

Contexto

Real
Campo de uso interno do sistema.

Help de Campo

Representa a identificao da verso do registro. Ser composto por Data + Hora


da ao (Incluso/Alterao/Excluso).

Campo

???_VERANT

Tipo

Grupo Campos

071

Tamanho

14

Verso 1.0

Integrao TAF
Ttulo do documento
Ttulo

Ver Ant Reg

Descrio

Verso anterior registro

Picture

@!

Uso

No Usado

Browse

No

Visual

Alterar

Contexto

Real
Campo de uso interno do sistema.

Help de Campo

Representa a identificao da verso anterior do registro. Este campo herdar a


verso do registro anterior, quando se tratar de uma alterao/excluso.

Campo

???_STATUS

Tipo

Grupo Campos

072

Tamanho

Ttulo

Status Reg.

Descrio

Status do registro

Picture

@!

Valid

Pertence(" 012349")

Uso

No Usado

Browse

No

Visual

Alterar

Contexto

Real
0=Reg.Vlido
1=Reg.Invlido

Combo Box

2=Reg.Transmitido
3=Reg.Transmitido com inconsistncia
4=Reg.Transmitido vlido
9=Em Processamento
Campo de uso interno do sistema.
Representa o status do registro:
(Vazio) = Registro Novo

Help de Campo

0 = Registro Vlido (integrao)


1 = Registro invalido (integrao)
2 = Registro transmitido
3 = Registro transmitido com inconsistncia(s)
4 = Registro transmitido vlido
9 = Em Processamento

Verso 1.0

Integrao TAF

Campo

???_PROTUL

Tipo

Grupo Campos

073

Ordem

16

Tamanho

44

Ttulo

Ult. Prot.

Descrio

Prot. ltima transmisso

Picture

@!

Uso

No Usado

Browse

No

Visual

Alterar

Contexto

Real

Help de Campo

Campo de uso interno do sistema.


Deve representar neste campo o protocolo da ltima transmisso do registro

Campo

???_PROTPN

Tipo

Grupo Campos

073

Ordem

17

Tamanho

44

Ttulo

Pnlt. Prot.

Descrio

Prot. penltima transm.

Picture

@!

Uso

No Usado

Browse

No

Visual

Alterar

Contexto

Real

Help de Campo

Campo de uso interno do sistema.


Representa o protocolo da penltima transmisso do registro.

Campo

???_EVENTO

Tipo

Grupo Campos

074

Tamanho

Ttulo

Id. Evento

Verso 1.0

Integrao TAF
Ttulo do documento
Descrio

Identificao do evento

Picture

@!

Valid

Pertence("IAE")

Uso

No Usado

Inicio Padro

"I"

Browse

No

Visual

Alterar

Contexto

Real
I=Incluso

Combo Box

A=Alterao
E=Excluso
Campo de uso interno do sistema.
Representa a identificao do evento. Deve ser preenchido com:

Help de Campo

I = Incluso
A = Alterao
E = Excluso

Campo

???_ATIVO

Tipo

Grupo Campos

075

Tamanho

Ttulo

Reg. Ativo?

Descrio

Registro ativo?

Valid

Pertence("12")

Uso

No Usado

Inicio Padro

"1"

Browse

No

Visual

Alterar

Contexto

Real

Combo Box

1=Sim
2=No
Campo de uso interno do sistema. Indica se o registro est ativo:

Help de Campo

1 = Sim
2 = No

Verso 1.0

Integrao TAF

Alterao direta do
registro, mantendo o
Evento como uma Incluso
Gera um novo registro
como um evento de
Alterao e inativa o
registro original na base
TAF
Alterao direta do
registro, mantendo o
Evento como uma
Alterao
Gera um novo registro
como um evento de
Alterao e inativa o
registro original na base
TAF
Inclui um novo registro
como um evento do
Incluso

Ao
Alterao/Retificao
Alterao direta,
mantendo o Evento como
uma incluso
Gera um novo registro
como um evento de
Alterao e inativa o
registro original na base
TAF
Alterao direta do
registro, mantendo o
Evento como uma
Alterao
Gera um novo registro
como um evento de
Alterao e inativa o
registro original na base
TAF
Alterao direta, alterando
o Evento como uma
Alterao

Gera um novo registro


como um evento de
Incluso

Gera um novo registro


como um evento de
Incluso

Ao Incluso

Incluso
EVENTO
=
I

Alterao

No
Transmitido

Transmitido

No
Transmitido

EVENTO
=
A

Transmitido

Excluso

No
Transmitido

EVENTO
=
E

Transmitido

Ao Excluso (apenas para


eventos cadastrais)
Excluso direta
Gera um novo registro como
um evento de Excluso e
inativa o registro original na
base TAF
Excluso direta e Ativa o
registro anterior na base
TAF
Gera um novo registro como
um evento de Excluso e
inativa o registro original na
base TAF
Gera um novo registro
herdando todas as
informaes do registro
original e como um evento
de Excluso

3. Pr-requisitos: Instalao, Implantao e Utilizao

TAF Protheus V. 11.90


TOTVS DBAccess V. 20131204

4. Integrao Banco a Banco


Primeiramente necessrio realizar a instalao do produto TAF. Mais informaes na manual de instalao
TAF. // em desenvolvimento.
Instalao do TOTVS DBAcces. Mais informaes no link:
http://tdn.totvs.com.br/display/tec/TOTVS++DBAccess+--+29106.
Depois de configurado o ambiente local TAF, ser necessrio realizar as configuraes para informar o local da
base de dados do ERP, onde ser criada e manutenida a tabela compartilhada TAFST1.
Para isso, utiliza-se o prprio ODBC (Open Database Connectivity) do sistema operacional, criando uma Fonte
de dados do sistema, apontando para essa database.

Verso 1.0

Integrao TAF
Ttulo do documento
Exemplo:
Fonte de dados ODBC Windows, base de dados SQL:

Neste exemplo, o banco de dados do ERP est no endereo: 172.16.104.249.

10

Verso 1.0

Integrao TAF

Configurao do DBAcces:
Atravs do DBAcces Monitor

Verso 1.0

11

Integrao TAF
Ttulo do documento
Desta forma, o DBAcces na base local ter acesso direto base de dados do ERP.
Com isso, no ambiente TAF, necessrio configurar os parmetros abaixo (Via Configurador):
Parmetro

MV_TAFTDB

Contedo (exemplo)

MSSQL

Descrio

Indicar Top Data Base da base de dados da tabela TAFST1 (em domnio do ERP)
para integrao.

Parmetro

MV_TAFTALI

Contedo (exemplo)

TOPERP

Descrio

Indicar Top Alias da base de dados da tabela TAFST1 (em domnio do ERP) para
integrao.

Antes de qualquer integrao dever informada, no cadastro de estabelecimentos TAF, a


empresa/estabelecimento.
Esse cadastro serve para relacionar a identificao da Empresa/Filial do ERP com a Empresa Filial no TAF.
Exemplo:
Ao ter registros na TAFST1, com o campo TAFFIL preenchido com a filial do ERP: 001.

Atravs da rotina de Complemento de Estabelecimento (mais informaes na especificao tcnica


REQ002.S1000 Empregador), deve-se cadastrar previamente o relacionamento desta filial 001 com a filial
correspondente na base TAF.

Caso a integrao contemple mltiplos softwares, atravs deste mesmo cadastro estar disponibilizada no
TAF.

12

Verso 1.0

Integrao TAF

Especificao da Tabela Compartilhada:

Layout Shared Table (TAFST1/TAFST2)


As informaes transferidas para esta relao (tabela) ser de responsabilidade da aplicao atravs de sua
rotina de extrao de movimento. Aps devidamente populada, todo o restante do processamento de
controle do TAF, inclusive a remoo dos registros j processados, tornando-a voltil. Ela estar localizada na
mesma instncia da aplicao (ERPs) e ser criada automaticamente pelo TAF no momento da implantao.
Definies
Esta relao se chamar TAFST1 / TAFST2 e ter 7 atributos. Suas duplas tero como finalidade principal
armazenar as mensagens, seja ela XML ou TXT (texto no layout TOTVS).
TAFFIL ( CHAR(10) ) NOT NULL
Representa o cdigo da empresa/filial vinculada ao TAF no Cadastro de Complemento do Estabelecimento.
Esta informao qual estabelecimento o movimento pertence.
TAFCODMSG ( CHAR(1) ) NOT NULL
Representa o cdigo da mensagem objeto da comunicao.
1, para mensagem no formato de arquivo texto (layout Totvs).
2, para mensagem no formato XML.
3, para mensagem NFe no formato XML (notas integradas via TSS).
TAFSEQ ( CHAR(3) ) NOT NULL
Representa sempre uma ordem crescente para processamento das informaes. Principalmente nos casos de
mesmos tipos de registros (TP_REG) caso o tamanho total da mensagem extrapole 1 MB de limite do campo
(MSG ), especificado abaixo.
TAFTPREG ( CHAR(10) ) NULL
Representa o tipo de registro, este domnio da relao opcional/(OBRIGATRIO) e poder ser utilizado para
quando a mensagem for segregada por registro, no caso do e-Social.
TAFKEY ( CHAR(100) ) NOT NULL
Representa uma chave de identidade da mensagem para controle do ERP em futuras consultas, atualizaes,
etc. Esta identidade (key) tem o objetivo de evitar duplicidades de informaes caso a dupla ainda no tenha
sido processada pelo TAF e uma nova insero esteja sendo efetuada para a mesma chave FILIAL + COD_MSG
+ SEQ + TP_REG .

Verso 1.0

13

Integrao TAF
Ttulo do documento
TAFMSG ( BLOB ) NOT NULL
Representa a mensagem objeto da comunicao, conforme padro definido pelo comit e limitado a 1 MB.
(VERIFICAR BANCOS).
Observao:
Um BLOB (Binary Large Object - Grande Objeto Binrio) pode conter qualquer informao binria como
imagens, vdeos, udio, bem como qualquer outro tipo de multimdia ou dados em geral.
TAFSTATUS ( CHAR(1) ) NOT NULL
Representa o status de processamento das informaes por dupla.
0, indica que as informaes esto sendo processadas pela aplicao (ERP).
1, indica que as informaes esto disponveis para que a integrao a processe, ou seja, est disponvel para
o TAF process-la.
2, indica que as informaes esto sendo processadas.
3, indica que as informaes j foram processadas e esto disponveis no ambiente do TAF.
7, indica que hove erro na excluso dos registros (somente para arquivo texto COD_MSG = 1).
8, indica que que a filial do registro no est cadastrada no sistema.
7, indica erro de estrutura no registro (numero de pipes menor que o esperado).

TAFIDTHRD ( CHAR(10) ) NOT NULL


Representa a identificao da Thread que processar o registro. utilizada para um processamento com
mltiplas threads.

UNIQUE KEY
FILIAL + COD_MSG + SEQ + TP_REG + KEY
PRIMARY KEY
FILIAL + COD_MSG + SEQ + TP_REG + KEY
FILIAL

COD_MSG

SEQ

TP_REG

TAFKEY

MSG

STATUS

001

001

T001

20120701155000

|T001|001|TESTE@TESTE.COM.BR|...

001

001

T007

20120701155000

|T007|000022333|ADFASDFSADSA...

001

002

T007

20120701155000

|T007|000044444|ADFASDFSADSA...

001

003

T007

20120701155000

|T007|000055555|ADFASDFSADSA...

001

001

S1200

20120701155000

<A><B>SDFSDF</B><X>SAFASDFSF...

001

002

S1200

20120701155000

<A><B>RRRDFF</B><X>SAFASDFSF...

TAFIDTHRD

Neste exemplo, foi utilizado como KEY a data e hora de gerao das duplas no formato
(AAAAMMDDHHMMSS), porm fica a critrio da aplicao o controle deste domnio.

Considera-se informao apta para a integrao todas quelas que estiverem com status igual a 1.

14

Verso 1.0

Integrao TAF

Para excluso dos registos com COD_MSG = 1 (arquivo texto) deve-se substiruir o Tipo de Registro (TP_REG)
pelo cdigo T999:
FILIAL

COD_MSG

SEQ

TP_REG

TAFKEY

MSG

STATUS

001

001

T999

20120701155000

|T001|001|TESTE@TESTE.COM.BR|...

001

001

T999

20120701155000

|T007|000022333|ADFASDFSADSA...

001

002

T999

20120701155000

|T007|000044444|ADFASDFSADSA...

TAFIDTHRD

O sistema se baseia na chave da tabela Pai para realizar a excluso.

A criao a manuteno da estrutura desta tabela TAFST1 ser de responsabilidade do produto TAF.

Chave dos registros TAF


Registro

Chave nica do Layout E-Social

Tam.Chave

S-1000

Filial + Filial de Origem das informaes

S-1010

Filial + CodRubrica + iniValidade + fimValidade

46

S-1020

Filial + CodLotacao + iniValidade + fimValidade

46

S-1030

Filial + CodCargo + iniValidade + fimValidade

46

S-1040

Filial + CodFuncao + iniValidade + fimValidade

46

S-1050

Filial + CodJornada + iniValidade + fimValidade

46

S-1060

Filial + TpInscricao + nrInscricao + iniValidade + fimValidade

31

S-1070

Filial + TpProcesso + nrProcesso + iniValidade + fimValidade

37

S-1080

Filial + CnpjOpPortuario + iniValidade + fimValidade

30

S-1100

Filial + indApuracao+perApuracao

S-1200

Filial + indApuracao+perApuracao+cpfTrab

19

S-1300

Filial + indApuracao+perApuracao

S-1310

Filial + indApuracao+perApuracao

S-1320

Filial + indApuracao+perApuracao

S-1330

Filial + indApuracao+perApuracao

S-1340

Filial + indApuracao+perApuracao

S-1350

Filial + indApuracao+perApuracao

S-1360

Filial + indApuracao+perApuracao

S-1370

Filial + indApuracao+perApuracao

Verso 1.0

15

Integrao TAF
Ttulo do documento
S-1380

Filial + indApuracao+perApuracao

S-1390

Filial + indApuracao+perApuracao

S-1399

Filial + indApuracao+perApuracao

S-1400

Filial + indApuracao+perApuracao

S-1800

Filial + dtApuracao

S-2100

Filial + Matricula+cpfTrab

41

S-2200

Filial + Matricula+cpfTrab

41

S-2220

Filial + cpfTrab+dtAlteracao

19

S-2240

Filial + Matricula+cpfTrab+dtAlteracao

49

S-2260

Filial + cpfTrab+dtAcidente+horaAcidente

24

S-2280

Filial + Matricula+cpfTrab+dtAso

49

S-2320

Filial + Matricula+cpfTrab+codMotAfastamento

43

S-2325

Filial + Matricula+cpfTrab+codMotAfastamento

43

S-2330

Filial + Matricula+cpfTrab+codMotAfastamento

43

S-2340

Filial + Matricula+cpfTrab+dtIniEstabilidade

49

S-2345

Filial + Matricula+cpfTrab+dtFimEstabilidade

49

S-2360

Filial + Matricula+cpfTrab+dtIniCondicao+tpCondicao

51

S-2365

Filial + Matricula+cpfTrab+tpCondicao+dtFimCondicao

51

S-2400

Filial + Matricula+cpfTrab+dtAvisoPrevio

49

S-2405

Filial + Matricula+cpfTrab+dtCancAvisoPrevio

49

S-2600

Filial + Matricula+cpfTrab

40

S-2620

Filial + cpfTrab+dtAlteracao

19

S-2680

Filial + cpfTrab+dtTermino

19

S-2800

Filial + Matricula+cpfTrab+motivoDesligamento+dtDesligamento+indPagtoAPI

52

S-2820

Filial + Matricula+cpfTrab+tpReintegracao+nrProcJud

48

S-2900

Filial + tpEvento+cpfTrab

17

Para todos os registros do E-Social a chave nica das tabelas a mesma indicada no Layout do Fisco, com
exceo do registro S-1000 - Informaes do Empregador, onde a chave nica a filial de origem das
informaes.

16

Verso 1.0

Integrao TAF

5. Integrao WebService

A integrao utilizando WebService realiza a gravao dos arquivos diretamente na tabela ST2 dispensando a
utilizao da conexo banco a banco. Para a utilizao deste servio necessrio configurar um server para
trabalhar como servidor web, sendo este preferencialmente separado do server do TAF criando-se um servio
novo. No servio necessrio incluir as informaes do servidor web no arquivo de configurao
(appserver.ini) conforme EXEMPLO abaixo:
[HTTP]
Enable=1
Port=8089
Path=C:\Base_Oficial\TAF_Data\web
instances=40,100
SESSIONTIMEOUT=60000
[172.16.31.105:8089]
ENABLE=1
PATH=C:\Base_Oficial\TAF_Data\web\ws
ENVIRONMENT=TAF_CLOUD
RESPONSEJOB=JOB_WS
INSTANCENAME=WS
DEFAULTPAGE=wsindex.apw
Aps a configurao do appserver.ini o servidor web vai estar disponvel na Url configurada, no caso do
exemplo acima 172.16.31.105:8089, digitar essa Url na barra de endereos de um navegador e verificar se o
servio TAFWS est disponvel.

O Mtodo para gravao dos arquivos o GRAVAST2 que possui as seguintes propriedades:
Processo: Assncrono
Funo Mtodo de recebimento dos XMLs do E-Social para gravao direta na tabela ST2.
Url - http://HOST:PORTA/TAFWS.apw

Verso 1.0

17

Integrao TAF
Ttulo do documento

Parmetros de entrada:
<soapenv:Body>
<loc:GRAVAST2>
<loc:ESOCIAL>
<loc:REGESOCIAL>
<!--Zero or more repetitions:-->
<loc:REGISTRO>
<loc:CODFIL>STRING</loc:CODFIL>
<loc:CODMSG>STRING</loc:CODMSG>
<loc:SEQ>STRING</loc:SEQ>
<loc:TAFKEY>STRING</loc:TAFKEY>
<loc:TIPOREG>STRING</loc:TIPOREG>
<loc:XMLESOC>BASE64BINARY</loc:XMLESOC>
</loc:REGISTRO>
</loc:REGESOCIAL>
</loc:ESOCIAL>
</loc:GRAVAST2>
</soapenv:Body>

Parmetro

Tipo

Tam
-

Pai

GRAVAST2
ESOCIAL
REGESOCIAL
REGISTRO
CODFIL

Estrutura
Estrutura
Estrutura
Estrutura
Alfanumrico

10

GRAVAST2
ESOCIAL
REGESOCIAL
REGESOCIAL

CODMSG

Alfanumrico

01

REGESOCIAL

SEQ
TAFKEY

Alfanumrico
Alfanumrico

03
100

REGESOCIAL
REGESOCIAL

TIPOREG
XMLESOC

Alfanumrico
BASE64Binary

10

REGESOCIAL
REGESOCIAL

Observao

Filial do TAF que corresponde a filial do


ERP.
Representa o cdigo da mensagem
objeto da comunicao. (1-TXT,2XML,3-Msg Nfe XML)
Sequencia do arquivo
Chave para identificao do Registro
conforme Regra TAF
Cdigo do evento e-social
XML do evento, conforme Manual de
Orientao do e-Social.

Parmetros de sada:
<soap:Body>
<GRAVAST2RESULT>
<REGRETORNO>
<RETORNO>
<MENSAGEM>STRING</MENSAGEM>
<RETORNO>BOOLEAN</RETORNO>

18

Verso 1.0

Integrao TAF

<TAFKEY>STRING</TAFKEY>
</RETORNO>
</REGRETORNO>
</GRAVAST2RESULT>
</soap:Body>
Parmetro
GRAVAST2RESULT
REGRETORNO
RETORNO
MENSAGEM
RETORNO
TAFKEY

Tipo
Estrutura
Estrutura
Estrutura
Estrutura
Boolean
Alfanumrico

Tam
-

100

Pai
GRAVAST2RESULT
ESOCIAL
REGESOCIAL
REGESOCIAL
REGESOCIAL

Observao

Mensagem de retorno.
Retorno lgico da requisio
Chave para identificao do Registro
conforme Regra TAF

Parmetros do sistema:
X6_VAR

MV_TAFVXML

X6_TIPO

Lgico

X6_DESCRIC

Determina se deve ser efetuado a validao dos Xmls na Integrao dos


registros para tabela TAFST2

X6_CONTEUD

.F.

X6_VAR

MV_TAFVLAY

X6_TIPO

Lgico

X6_DESCRIC

Determina se deve ser efetuado a validao dos Layouts na Integrao dos


registros para tabela TAFST2

X6_CONTEUD

.T.

Verso 1.0

19

Integrao TAF
Ttulo do documento
6. Integrao - nativa

Para integrao nativa utilizado o prprio MVC para gravaes diretas nas tabelas TAF, ficando como opcional
a utilizao da conexo entre banco de dados e utilizao das tabelas compartilhadas (ST Shared Table). Isso
ser feito quando o Protheus RH instalado for a partir da verso 11.00, ou seja, o TAF estar automaticamente
no mesmo ambiente (Binrio, Dicionrio e Repositrio de Dados).
Tabelas TAF:
Tabela

Requisito

Descrio

Fonte PRW

C87

REQ001.01

Cadastro de Categoria de Trabalhadores

TAFA212

C88

REQ001.02

Cadastro de Grau de Exposio a Agentes Nocivos

TAFA213

C89

REQ001.03

Cadastro de Natureza das Rubricas da folha de pagamento

TAFA214

C8A

REQ001.04

Cadastro de Cdigos e Alquotas de Fpas - Terceiro

TAFA215

C8C

REQ001.06

Cadastro de classificao de Serv. Ret. Contrib. Previd.

TAFA217

C94

REQ001.07

Cadastro dos Riscos Operacionais Especficos

TAFA240

C95

REQ001.07

Cadastro dos Riscos Operacionais Especficos

TAFA241

C96

REQ001.07

Cadastro dos Riscos Operacionais Especficos

TAFA242

C97

REQ001.07

Cadastro dos Riscos Operacionais Especficos

TAFA243

C98

REQ001.07

Cadastro dos Riscos Operacionais Especficos

TAFA244

C8D

REQ001.08

Classificao Tributria

TAFA219

C8E

REQ001.09

Cadastro de Tipos de Arquivo da e-Social

TAFA220

C8F

REQ001.10

Cadastro de Tipos de Lotao

TAFA221

C8G

REQ001.11

Cadastro de Cdigos x Siglas x Alquotas de Outras Entidades e Fundos

TAFA222

C8H

REQ001.12

Cadastro de tipos de Contribuio

TAFA223

C8I

REQ001.13

Cadastro de Parte do Corpo Atingida

TAFA224

C8J

REQ001.14

Cadastro de Agente Causador do Acidente do Trabalho

TAFA225

C8K

REQ001.15

Cadastro de Agente Causador-Sit. Ger. Doena Prof.

TAFA226

C8L

REQ001.16

Cadastro de Situao Geradora do Acidente de Trabalho

TAFA227

C8M

REQ001.17

Cadastro de Descrio da Natureza da Leso

TAFA228

C8N

REQ001.18

Cadastro de Motivos de Afastamento

TAFA229

C8O

REQ001.19

Cadastro de Motivos de Desligamento

TAFA230

C06

REQ001.20

Cadastro de Tipos de Logradouro

TAFA006

C8P

REQ001.21

Cadastro de Natureza Jurdica do Contribuinte

TAFA231

C8T

REQ001.22

Cadastro de cdigos de incidncia tributria da rubrica para a Previdncia Social

TAFA233

C8U

REQ001.23

Cadastro de Cdigos de incidncia tributria da rubrica para o IRRF

TAFA234

C8Z

REQ001.24

Cadastro do Cdigo Brasileiro de Ocupao

TAFA237

C8S

REQ001.25

Cadastro de Indicativo de Deciso

TAFA247

CR9

REQ002

Complemento do cadastro de Complemento de Empresa - C1E

TAFA050

C1E

REQ002

S-1000 - Informaes do Empregador

TAFA050

20

Verso 1.0

Integrao TAF

C8R

REQ003

S-1010 - Tabelas de Rubricas

TAFA232

C99

REQ004

S-1020 - Tabela de Lotao / Departamento

TAFA246

C8V

REQ005

S-1030 - Tabela de Cargos

TAFA235

C8X

REQ006

S-1040 - Tabela de Funes

TAFA236

C90

REQ007

S-1050 - Tabela de Horrios / Turnos de Trabalho

TAFA238

C92

REQ008

S-1060 - Cadastro de Estabelecimento

TAFA253

C93

REQ009

S-1070 - Tabela de Processos

TAFA245

C8W

REQ010

S-1080 - Tabela de Operadores Porturios

TAFA248

C9V

REQ011

S-2100,S-2200,S-2220,S-2240 - Cadastro de Funcionrios

TAFA256

C9Y

REQ011

S-2100,S-2200,S-2220,S-2240 - Cadastro de Funcionrios

TAFA256

C9Z

REQ011

S-2100,S-2200,S-2220,S-2240 - Cadastro de Funcionrios

TAFA256

CMH

REQ011.1

Cadastro de Grau de Instruo

TAFA216

CMI

REQ011.2

Cadastro de Tipo de Dependente

TAFA218

CM0

REQ013

S-2260 - Comunicao de Acidente de Trabalho

TAFA257

CM1

REQ013

S-2260 - Comunicao de Acidente de Trabalho

TAFA257

CM2

REQ013

S-2260 - Comunicao de Acidente de Trabalho

TAFA257

CM3

REQ013

S-2260 - Comunicao de Acidente de Trabalho

TAFA257

CM7

REQ013

S-2260 - Comunicao de Acidente de Trabalho / Cadastro de Mdico

TAFA262

C8B

REQ014

S-2280 - Atestado de Sade Ocupacional

TAFA258

C9W

REQ014

S-2280 - Atestado de Sade Ocupacional

TAFA258

C9X

REQ014

S-2280 - Atestado de Sade Ocupacional

TAFA258

CM6

REQ016

S-2320 - Afastamento Temporrio

TAFA261

CMM

REQ016.1

Classificao Internacional de Doenas

TAFA270

CM5

REQ017.01

S-2340 - Estabilidade Inicio

TAFA260

CRH

REQ017.02

S-2345 - Estabilidade Trmino

TAFA287

CM9

REQ018

S-2360,S-2365 - Condio diferenciada de trabalho

TAFA264

CMA

REQ018

S-2360,S-2365 - Condio diferenciada de trabalho

TAFA264

CMB

REQ018

S-2360,S-2365 - Condio diferenciada de trabalho

TAFA264

CM8

REQ019

S-2400 - Aviso Prvio e S2405 - Cancelamento Aviso Prvio

TAFA263

CMK

REQ022

S-2600,S-2620,S-2680 - Trabalhador sem vnculo

TAFA256

CML

REQ022

S-2600,S-2620,S-2680 - Trabalhador sem vnculo

TAFA273

CMD

REQ023

S-2800 - Desligamento

TAFA266

CME

REQ023

S-2800 - Desligamento

TAFA266

CMF

REQ023

S-2820 - Reintegrao por determinao Judicial

TAFA267

CMJ

REQ024

S2900 - Excluso de Evento Enviado Indevidamente

TAFA269

C8Y

REQ025

S-1100 - E-Social Mensal - Abertura

TAFA249

C91

REQ026

S-1200 - Folha de Pagamento

TAFA250

C9J

REQ026

S-1200 - Folha de Pagamento

TAFA250

C9K

REQ026

S-1200 - Folha de Pagamento

TAFA250

C9L

REQ026

S-1200 - Folha de Pagamento

TAFA250

Verso 1.0

21

Integrao TAF
Ttulo do documento
C9M

REQ026

S-1200 - Folha de Pagamento

TAFA250

C9N

REQ026

S-1200 - Folha de Pagamento

TAFA250

C9O

REQ026

S-1200 - Folha de Pagamento

TAFA250

C9P

REQ026

S-1200 - Folha de Pagamento

TAFA250

C9Q

REQ026

S-1200 - Folha de Pagamento

TAFA250

C9R

REQ026

S-1200 - Folha de Pagamento

TAFA250

CRN

REQ026

S-1200 - Folha de Pagamento

TAFA250

C9U

REQ026

S-1200 - Folha de Pagamento

TAFA250

CUS

REQ026

S-1200 - Folha de Pagamento

TAFA250

CUT

REQ026

S-1200 - Folha de Pagamento

TAFA250

CMN

REQ027

S-1310 - Mensal Outras Informaes - Serv. Tomados (Cesso de Mo de Obra)

TAFA271

CMO

REQ027

S-1310 - Mensal Outras Informaes - Serv. Tomados (Cesso de Mo de Obra)

TAFA271

CMP

REQ027

S-1310 - Mensal Outras Informaes - Serv. Tomados (Cesso de Mo de Obra)

TAFA271

CMQ

REQ027

S-1310 - Mensal Outras Informaes - Serv. Tomados (Cesso de Mo de Obra)

TAFA271

CMR

REQ031

S-1350 - Mensal Outras Informaes - Aquisio de Produo

TAFA272

CMS

REQ031

S-1350 - Mensal Outras Informaes - Aquisio de Produo

TAFA272

CMT

REQ031

S-1350 - Mensal Outras Informaes - Aquisio de Produo

TAFA272

CMU

REQ031

S-1350 - Mensal Outras Informaes - Aquisio de Produo

TAFA272

CMV

REQ031

S-1350 - Mensal Outras Informaes - Aquisio de Produo

TAFA272

C8Q

REQ032

S-1360 - Comercializao da Produo

TAFA252

C9C

REQ032

S-1360 - Comercializao da Produo

TAFA252

C9D

REQ032

S-1360 - Comercializao da Produo

TAFA252

C9E

REQ032

S-1360 - Comercializao da Produo

TAFA252

C9B

REQ033

S-1370 - Rec. Recebidos ou Repassados para Clube de Futebol

TAFA255

C9G

REQ033

S-1370 - Rec. Recebidos ou Repassados para Clube de Futebol

TAFA255

C9H

REQ033

S-1370 - Rec. Recebidos ou Repassados para Clube de Futebol

TAFA255

C9I

REQ033

S-1370 - Rec. Recebidos ou Repassados para Clube de Futebol

TAFA255

CMX

REQ034

S-1400 - Mensal Bases, Reteno, Dedues e Contribuies

TAFA274

CMZ

REQ034

S-1400 - Mensal Bases, Reteno, Dedues e Contribuies

TAFA274

CR0

REQ034

S-1400 - Mensal Bases, Reteno, Dedues e Contribuies

TAFA274

CR1

REQ034

S-1400 - Mensal Bases, Reteno, Dedues e Contribuies

TAFA274

CR2

REQ034

S-1400 - Mensal Bases, Reteno, Dedues e Contribuies

TAFA274

CR3

REQ034

S-1400 - Mensal Bases, Reteno, Dedues e Contribuies

TAFA274

CR3

REQ034

S-1400 - Mensal Bases, Reteno, Dedues e Contribuies

TAFA274

CR4

REQ034

S-1400 - Mensal Bases, Reteno, Dedues e Contribuies

TAFA274

CR5

REQ034

S-1400 - Mensal Bases, Reteno, Dedues e Contribuies

TAFA274

CR6

REQ034

S-1400 - Mensal Bases, Reteno, Dedues e Contribuies

TAFA274

CR7

REQ034

S-1400 - Mensal Bases, Reteno, Dedues e Contribuies

TAFA274

CR8

REQ034

S-1400 - Mensal Bases, Reteno, Dedues e Contribuies

TAFA274

CRS

REQ003.003129

S-1800 - Espetculo Desportivo

TAFA298

22

Verso 1.0

Integrao TAF

CRT

REQ003.003129

S-1800 - Espetculo Desportivo

TAFA298

CUG

REQ003.003129

S-1800 - Espetculo Desportivo

TAFA298

CUH

REQ003.003129

S-1800 - Espetculo Desportivo

TAFA298

CUI

REQ003.003129

S-1800 - Espetculo Desportivo

TAFA298

CUJ

REQ003.003129

S-1800 - Espetculo Desportivo

TAFA298

CUK

REQ003.003129

S-1800 - Espetculo Desportivo

TAFA298

CUL

REQ003.003129

S-1800 - Espetculo Desportivo

TAFA298

C9A

REQ051

Cadastro de Varas

TAFA251

C9F

REQ052

Cadastro de Responsvel pelas Informaes

TAFA254

Eventos:

S-1000 Informaes do Empregador


Rotina:
Model MVC:
Validao
Gerao XML
Regras

TAFA050.prw
MODEL_C1E
TAF050VLD()
TAF050XML()
#
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

TAG
eSocial
evtInfoEmpregador
id
versao
ideEvento
tpAmb
procEmi
indSegmento
verProc
ideEmpregador
tpInscricao
nrInscricao
infoEmpregador
Incluso / alterao
idePeriodo
iniValidade
fimValidade
infoCadastro
nomeRazao
classTrib
natJuridica
cnaePreponderante
indCooperativa
indConstrutora
aliqRat
aliqRat
fap

Verso 1.0

Model
MODEL_C1E
MODEL_C1E
MODEL_C1E
MODEL_C1E
MODEL_C1E
MODEL_C1E
MODEL_C1E
MODEL_C1E
MODEL_C1E
MODEL_C1E

23

Campo

FGetIDInt ()

C1E_DTINI
C1E_DTFIN
C1E_NOME
C1E_CLAFIS
C1E_NATJUR
C1E_CNAE
C1E_INCOOP
C1E_INCONS
C1E_ALIRAT
C1E_FAP

"classTrib"
"natJuridica"

Integrao TAF
Ttulo do documento
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63

aliqRatAjustada
procAdmJudRat
tpProcesso
nrProcesso
procAdmJudFap
tpProcesso
nrProcesso
dadosIsencao
siglaMin
nrCertificado
dtEmissaoCertificado
dtVenctoCertificado
nrProtRenovacao
dtProtRenovacao
dtDou
pagDou
contato
nomeContato
cpfContato
foneFixo
foneCelular
fax
email
infoOrgInternacional
indAcordoIsencaoMulta
softwareHouse
cnpjSoftwareHouse
nomeRazao
nomeContato
telefone
codMunicipio
uf
email
infoComplementares
indSocioOstensivo
indSituacaoEspecial

MODEL_C1E
MODEL_C1E
MODEL_C1E
MODEL_C1E
MODEL_C1E
MODEL_C1E
MODEL_C1E
MODEL_C1E
MODEL_C1E
MODEL_C1E
MODEL_C1E
MODEL_C1E
MODEL_C1E
MODEL_C1E
MODEL_C1E
MODEL_C1E
MODEL_C1E
MODEL_C1E
MODEL_CRM
MODEL_CRM
MODEL_CRM
MODEL_CRM
MODEL_CRM
MODEL_CRM
MODEL_CRM
MODEL_C1E
MODEL_C1E

C1E_AJURAT
C1E_PRFRAT
-

"tpProcesso","nrProcesso"

C1E_PRFFAP
-

"tpProcesso","nrProcesso"

C1E_SIGMIN
C1E_NRCERT
C1E_DTEMCE
C1E_DTVCCE
C1E_NRPRRE
C1E_DTPRRE
C1E_DTDOU
C1E_PAGDOU
C1E_NOMCNT
C1E_CPFCNT
C1E_FONCNT
C1E_CELCNT
C1E_FAXCNT
C1E_EMAIL
C1E_ISEMUL
CRM_CNPJ
CRM_NOME
CRM_CONTAT
CRM_FONE
CRM_MUN
CRM_UF
CRM_MAIL

"uf", "codMunicipio"
uf

C1E_SOCOST
C1E_SITESP

Exemplo:
Begin Transaction
Aadd( aChave, { C, C1E_CODFIL, 001, .T. } )
//
//Funo para validar se a operao desejada pode ser realizada
//
If FTafVldOpe( 'C1E', 7, @nOpc, cFilEv, @aIncons, aChave, @oModel, 'TAFA050', cCmpsNoUpd, 2 )
//
//Quando se tratar de uma Excluso direta, preciso apenas realizar
//o Commit(), no sendo necessria nenhuma manuteno nas informaes
//
If nOpc <> 5

24

Verso 1.0

Integrao TAF

oModel:LoadValue( "MODEL_C1E", "C1E_FILTAF", C1E->C1E_FILTAF )


oModel:LoadValue( "MODEL_C1E", "C1E_CODFIL", C1E->C1E_CODFIL )
oModel:LoadValue( "MODEL_C1E", "C1E_FILIAL", xFilial( "C1E" ) )
oModel:LoadValue( "MODEL_C1E", "C1E_VERSAO", xFunGetVer() )
oModel:LoadValue(
oModel:LoadValue(
oModel:LoadValue(
oModel:LoadValue(
oModel:LoadValue(

"MODEL_C1E",
"MODEL_C1E",
"MODEL_C1E",
"MODEL_C1E",
"MODEL_C1E",

"C1E_DTINI","012013"
"C1E_DTFIN","012013"
"C1E_NOME", "Nome da
"C1E_CNAE", "CNAE01"
"C1E_INCOOP", "1" )

)
) )
Empresa" )
)

//Quando se tratar de um cdigo de Tabela do TAF, ou seja, se refere


//a um ID, deve-se utilizar a funo FGetIdInt() para que o ID seja
//retornado

oModel:LoadValue( "MODEL_C1E", "C1E_BANCO", FGetIdInt( "banco", ,"033" ) )


EndIf
//
//Efetiva a operao desejada
//
FWFormCommit( oModel )
oModel:DeActivate()
EndIf
End Transaction

S-1010 Tabela de Rubricas


Rotina:
Model MVC:

TAFA232.prw
MODEL_C8R

Verso 1.0

25

Integrao TAF
Ttulo do documento
Validao
TAF232VLD()
Gerao XML TAF232XML()
#
TAG
Regras
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44

eSocial
evtTabRubrica
Id
versao
ideEvento
tpAmb
procEmi
indSegmento
verProc
ideEmpregador
tpInscricao
nrInscricao
infoRubrica
Incluso / alterao
ideRubrica
codRubrica
iniValidade
fimValidade
dadosRubrica
descRubrica
natRubrica
indProvDesc
codIncidCP
codIncidIRRF
codIncidFGTS
codIncidSIND
repDSR
repDecTerceiro
repFerias
repRescisao
fatorRubrica
ideProcessoCP
tpProcesso
nrProcesso
extDecisao
ideProcessoIRRF
tpProcesso
nrProcesso
ideProcessoFGTS
tpProcesso
nrProcesso
ideProcessoSIND
tpProcesso
nrProcesso

Model
MODEL_C8R
MODEL_C8R
MODEL_C8R
MODEL_C8R
MODEL_C8R
MODEL_C8R
MODEL_C8R
MODEL_C8R
MODEL_C8R
MODEL_C8R
MODEL_C8R
MODEL_C8R
MODEL_C8R
MODEL_C8R
MODEL_C8R
MODEL_C8R
MODEL_C8R
MODEL_C8R
MODEL_C8R
MODEL_C8R
MODEL_C8R
MODEL_C8R
MODEL_C8R
MODEL_C8R

Campo

FGetIDInt()

C8R_CODRUB
C8R_DTINI
C8R_DTFIN
C8R_DESRUB
C8R_NATRUB
C8R_INDTRB
C8R_CINTPS
C8R_CINTIR
C8R_CINTFG
C8R_CINTSL
C8R_REPDSR
C8R_REPDTE
C8R_REPFER
C8R_REPREC
C8R_FATRUB

natRubrica
codIncidCP
codIncidIRRF

C8R_PROCCP
C8R_PROCCP
C8R_PROCCP

tpProcesso,nrProcesso
tpProcesso,nrProcesso
tpProcesso,nrProcesso

C8R_PROCIR
C8R_PROCIR

tpProcesso,nrProcesso
tpProcesso,nrProcesso

C8R_PROCFG
C8R_PROCFG

tpProcesso,nrProcesso
tpProcesso,nrProcesso

C8R_PROCCS
C8R_PROCCS

tpProcesso,nrProcesso
tpProcesso,nrProcesso

Exemplo:
Aadd( aChave, { "C", "C8R_CODRUB","00000001", .T.} )
Aadd( aChave, { "C", "C8R_DTINI", "112013", .T. } )
Aadd( aChave, { "C", "C8R_DTFIN", "122013", .T.} )

26

Verso 1.0

Integrao TAF

Begin Transaction
//
//Funo para validar se a operao desejada pode ser realizada
//
If FTafVldOpe( 'C8R', 2, @nOpc, cFilEv, @aIncons, aChave, @oModel, 'TAFA232', cCmpsNoUpd,1 )
//
//Quando se tratar de uma Excluso direta, preciso realizar apenas
//o Commit(), no sendo necessria nenhuma manuteno nas informaes
//
If nOpc <> 5
oModel:LoadValue( "MODEL_C8R", "C8R_FILIAL", C8R->C8R_FILIAL )
oModel:LoadValue( "MODEL_C8R", C8R_CODRUB, 00000001)
EndIf

//
//Efetiva a operao desejada
//
FWFormCommit( oModel )
oModel:DeActivate()
EndIf
End Transaction

Verso 1.0

27

Integrao TAF
Ttulo do documento
S-1020 Tabela de Lotaes
Rotina:
Model MVC:
Validao
Gerao XML
Regras

TAFA246.prw
MODEL_C99
TAF246VLD()
TAF246XML()
#
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40

TAG
evtTabLotacao
versao
infEvento
idEvento
ideEvento
tpAmb
procEmi
indSegmento
verProc
ideEmpregador
tpInscricao
nrInscricao
infoLotacao
Incluso / alterao
ideLotacao
codLotacao
iniValidade
fimValidade
dadosLotacao
descLotacao
tpLotacao
tpInscEstab
nrInscEstab
Endereo
tpLogradouro
descLogradouro
nrLogradouro
Complemento
Bairro
CEP
codMunicipio
Uf
fpasLotacao
Fpas
codTerceiros
infoEmprParcial
tpInscContratante
nrInscContratante
tpInscProprietario
nrInscProprietario

Model
MODEL_C99
MODEL_ C99
MODEL_ C99
MODEL_ C99
MODEL_ C99
MODEL_ C99
MODEL_ C99
MODEL_ C99
MODEL_ C99
MODEL_ C99
MODEL_ C99
MODEL_ C99
MODEL_ C99
MODEL_ C99
MODEL_ C99
MODEL_ C99
MODEL_ C99
MODEL_C99
MODEL_ C99
MODEL_ C99
MODEL_C99

28

Campo

FGetIDInt()

C99_CODIGO
C99_DTINI
C99_DTFIN
C99_DESCRI
C99_TPLOT
C99_TPINES
C99_NRINES

tpLotacao

C99_TPLOGR
C99_DESLOG
C99_NUMLOG
C99_COMLOG
C99_BAIRRO
C99_CEP
C99_CODMUN
"C99_UF"

tpLogradouro

Uf, codMunicipio
Uf

C99_FPAS
C99_FPAS

Fpas,codTerceiros
Fpas,codTerceiros

C99_TPINCT
C99_NRINCT
C99_TPINPR
C99_NRINPR

Verso 1.0

Integrao TAF

Exemplo:
Begin Transaction
Aadd( aChave, { "C", "C99_CODIGO","Codigo001", .T.} )
Aadd( aChave, { "C", "C99_DTINI", "102013", .T. } )
Aadd( aChave, { "C", "C99_DTFIN", "122013", .F.} )
//
//Funo para validar se a operao desejada pode ser realizada
//
If FTafVldOpe( 'C99', 2, @nOpc, cFilEv, @aIncons, aChave, @oModel, 'TAFA246', cCmpsNoUpd, 1 )
//
//Quando se tratar de uma Excluso direta, preciso apenas realizar
//o Commit(), no sendo necessria nenhuma manuteno nas informaes
//
If nOpc <> 5
oModel:LoadValue( "MODEL_C99", "C99_FILIAL", C99->C99_FILIAL )
oModel:LoadValue( "MODEL_C99", "C99_CODIGO", Codigo001 )
oModel:LoadValue( "MODEL_C99", "C99_DESCRI", Descrio da lotao )
EndIf
//
//Efetiva a operao desejada
//
FWFormCommit( oModel )
oModel:DeActivate()
EndIf
End Transaction

Verso 1.0

29

Integrao TAF
Ttulo do documento
S-1030 Tabela de Cargos
Rotina:
Model MVC:
Validao
Gerao XML
Regras

TAFA235.prw
MODEL_C8V
TAF235VLD()
TAF235XML()
#
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20

TAG
eSocial
evtTabRubrica
Id
versao
ideEvento
tpAmb
procEmi
indSegmento
verProc
ideEmpregador
tpInscricao
nrInscricao
infoCargo
Incluso / alterao
ideCargo
codCargo
iniValidade
fimValidade
dadosCargo
descCargo

Model
MODEL_C8V
MODEL_C8V
MODEL_C8V
MODEL_C8V

Campo

FGetIDInt()

C8V_CODIGO
C8V_DTINI
C8V_DTFIN
C8V_DESCRI

Exemplo:
Begin Transaction
aAdd( aChave, { "C", "C8V_CODIGO", 00001"
, .T. } )
aAdd( aChave, { "C", "C8V_DTINI" , 052013", .T. } )
aAdd( aChave, { "C", "C8V_DTFIN" , 072013", .T. } )
//
//Funo para validar se a operao desejada pode ser realizada
//
If FTafVldOpe( "C8V", 2, @nOpc, cFilEv, @aIncons, aChave, @oModel, "TAFA235", cCmpsNoUpd )
//
//Quando se tratar de uma Excluso direta, preciso apenas realizar
//o Commit(), no sendo necessria nenhuma manuteno nas informaes
//
If nOpc <> 5
oModel:LoadValue( "MODEL_C8V", "C8V_CODIGO", 00001 )
oModel:LoadValue( "MODEL_C8V", "C8V_DESCRI", Descrio Cargo )
EndIf
//
//Efetiva a operao desejada
//
FWFormCommit( oModel )
oModel:DeActivate()
EndIf
End Transaction

30

Verso 1.0

Integrao TAF

S-1040 Tabela de Funes


Rotina:
Model MVC:
Validao
Gerao XML
Regras

TAFA236.prw
MODEL_C8X
TAF236VLD()
TAF236XML()
#
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20

TAG
eSocial
evtTabFuncao
Id
versao
ideEvento
tpAmb
procEmi
indSegmento
verProc
ideEmpregador
tpInscricao
nrInscricao
infoFuncao
Incluso / alterao
ideFuncao
codFuncao
iniValidade
fimValidade
dadosFuncao
descFuncao

Model
MODEL_C8X
MODEL_C8X
MODEL_C8X
MODEL_C8X

Campo

FGetIDInt()

C8X_CODIGO
C8X_DTINI
C8X_DTFIN
C8X_DESCRI

Exemplo:
Begin Transaction
Aadd( aChave, { "C", "C8X_CODIGO", Codigo", .T.} )
Aadd( aChave, { "C", "C8X_DTINI" , 112013", .T.} )
Aadd( aChave, { "C", "C8X_DTFIN" , 122013", .T.} )
//
//Funo para validar se a operao desejada pode ser realizada
//
If FTafVldOpe( 'C8X', 2, @nOpc, cFilEv, @aIncons, aChave, @oModel, 'TAFA236', cCmpsNoUpd )
//
//Quando se tratar de uma Excluso direta, preciso apenas realizar
//o Commit(), no sendo necessria nenhuma manuteno nas informaes
//
If nOpc <> 5
oModel:LoadValue( "MODEL_C8X", "C8X_CODIGO", Codigo )
oModel:LoadValue( "MODEL_C8X", "C8X_DESCRI", Descrio )
EndIf
//
//Efetiva a operao desejada
//

Verso 1.0

31

Integrao TAF
Ttulo do documento
FWFormCommit( oModel )
oModel:DeActivate()
EndIf
End Transaction

32

Verso 1.0

Integrao TAF

S-1050 Tabela de horrios/Turnos


Rotina:
Model MVC:
Validao
Gerao XML
Regras

TAFA238.prw
MODEL_C90
TAF238VLD()
TAF238XML()
#
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32

TAG
eSocial
evtTabHorContratual
Id
Versao
ideEvento
tpAmb
procEmi
indSegmento
verProc
ideEmpregador
tpInscricao
nrInscricao
infoHorContratual
Incluso / alterao
ideHorContratual
codHorContratual
iniValidade
fimValidade
dadosHorContratual
horaEntrada
horaSaida
durJornada
tpJornada
descTpJornada
tpIntervalo
durIntervalo
horarioIntervalo
inicioIntervalo
terminoIntervalo
varHorario
deltaEntrada
deltaSaida

Model
MODEL_C90
MODEL_C90
MODEL_C90
MODEL_C90
MODEL_C90
MODEL_C90
MODEL_C90
MODEL_C90
MODEL_C90
MODEL_C90
MODEL_CRL
MODEL_CRL
MODEL_C90
MODEL_C90

Campo

C90_CODIGO
C90_DTINI
C90_DTFIN
C90_HRENT
C90_HRSAI
C90_DURJOR
C90_TPJORN
C90_DTPJOR
C90_TPINT
C90_DURINT
CRL_INIINT
CRL_FIMINT
C90_DELENT
C90_DELSAI

Exemplo:
Aadd( aChave, { "C", "C90_CODIGO", 0001", .T.} )
Aadd( aChave, { "C", "C90_DTINI" , "122013", .T.} )
Aadd( aChave, { "C", "C90_DTFIN", "122013", .T.} )
Begin Transaction
//
//Funo para validar se a operao desejada pode ser realizada
//

Verso 1.0

33

FGetIDInt()

Integrao TAF
Ttulo do documento
If FTafVldOpe( 'C90', 2, @nOpc, cFilEv, @aIncons, aChave, @oModel, 'TAFA238', cCmpsNoUpd )
//
//Quando se tratar de uma Excluso direta, preciso apenas realizar
//o Commit(), no sendo necessria nenhuma manuteno nas informaes
//
If nOpc <> 5
oModel:LoadValue( "MODEL_C90", "C90_FILIAL", C90->C90_FILIAL )
//
//Roda o aRules para gravar as informaes
//
oModel:LoadValue( "MODEL_C90", aRules[ nlI, 01 ],10:10)
oModel:LoadValue( "MODEL_C90", aRules[ nlI, 01 ],20:00)
//
//Quando se trata de uma alterao, deleta-se todas as linhas do Grid
//
If (nOpc == 4)
For nJ := 1 to oModel:GetModel( 'MODEL_CRL' ):Length()
oModel:GetModel( 'MODEL_CRL' ):GoLine(nJ)
oModel:GetModel( 'MODEL_CRL' ):DeleteLine()
Next nJ
EndIf
/* Esse layout, possui registros 'filhos'(horarioIntervalo). Ento fao o controle para
salvar
a quantidade de ns que estiverem no xml para os 'filhos'.*/
//CRL
nCRL := 1
While !Intervalos:EOF()
If (nCRL > 1) .Or. (nOpc == 4)
// necessrio atribuir LVALID para que permita o addline();
oModel:GetModel( "MODEL_CRL" ):LVALID := .T.
oModel:GetModel( "MODEL_CRL" ):AddLine()
EndIf
//Comea a salvar as informaes;
oModel:LoadValue( "MODEL_CRL", "CRL_INIINT", 12:00)
oModel:LoadValue( "MODEL_CRL", "CRL_FIMINT", 12:30)
nCRL := nCRL + 1
EndDo
EndIf
//
//Efetiva a operao desejada
//
FWFormCommit( oModel )
lRet := .T.
oModel:DeActivate()
EndIf
End Transaction

34

Verso 1.0

Integrao TAF

S-1060 Tabela de Estabelecimentos


Rotina:
Model MVC:
Validao
Gerao XML
Regras

TAFA253.prw
MODEL_C92
TAF253VLD()
TAF253XML()
#
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
26
27

TAG
eSocial
evtTabRubrica
Id
versao
ideEvento
tpAmb
procEmi
indSegmento
verProc
ideEmpregador
tpInscricao
nrInscricao
infoEstab
Incluso / alterao
ideEstab
tpInscricao
nrInscricao
iniValidade
fimValidade
dadosEstab
Fpas
codTerceiros
cnaePreponderante
aliqGilrat
aliqRat
fap
aliqRatAjustada
indSubstPatronalObra

Model
MODEL_C92
MODEL_C92
MODEL_C92
MODEL_C92
MODEL_C92
MODEL_C92
MODEL_C92
MODEL_C92
MODEL_C92
MODEL_C92
MODEL_C92

Campo

FGetIDInt()

C92_TPINSC
C92_NRINSC
C92_DTINI
C92_DTFIN
C92_CDFPAS
C92_CDFPAS
C92_CNAE

Fpas,codTerceiros
Fpas,codTerceiros

C92_ALQRAT
C92_FAP
C92_AJURAT
C92_SUBPAT

Exemplo:
Begin Transaction
aAdd(
aAdd(
aAdd(
aAdd(

aChave,
aChave,
aChave,
aChave,

{
{
{
{

"C",
"C",
"C",
"C",

"C92_TPINSC",
"C92_NRINSC",
"C92_DTINI" ,
"C92_DTFIN" ,

"1" , .T. } )
123456" , .T. } )
"012013", .T. } )
"052013", .T. } )

//
//Funo para validar se a operao desejada pode ser realizada
//
If FTafVldOpe( "C92", 2, @nOpc, cFilEv, @aIncons, aChave, @oModel, "TAFA253", cCmpsNoUpd )

Verso 1.0

35

Integrao TAF
Ttulo do documento
//
//Quando se tratar de uma Excluso direta, preciso apenas realizar
//o Commit(), no sendo necessria nenhuma manuteno nas informaes
//
If nOpc <> 5
oModel:LoadValue( "MODEL_C92", "C92_TPINSC", 1 )
oModel:LoadValue( "MODEL_C92", "C92_CNAE", 123456 )
EndIf
//
//Efetiva a operao desejada
//
FWFormCommit( oModel )
oModel:DeActivate()
EndIf
End Transaction

36

Verso 1.0

Integrao TAF

S-1070 Tabela de Processos


Rotina:
Model MVC:
Validao
Gerao XML
Regras

TAFA245.prw
MODEL_C93
TAF245VLD()
TAF245XML()
#
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

TAG
evtTabProcesso
Verso
infEvento
idEvento
ideEvento
tpAmb
procEmi
indSegmento
verProc
ideEmpregador
tpInscricao
nrInscricao
infoProcesso
Incluso / alterao
ideProcesso
tpProcesso
nrProcesso
iniValidade
fimValidade
dadosProcesso
indDecisao
dtDecisao
indDeposito
dadosProcJud
ufVara
codMunicipio
idVara
indAutoria

Model
MODEL_C93
MODEL_C93
MODEL_C93
MODEL_C93
MODEL_C93
MODEL_C93
MODEL_C93
MODEL_C93
MODEL_C93
MODEL_C93
MODEL_C93

Campo

C93_TPPROC
C93_NRPROC
C93_DTINI
C93_DTFIN
C93_INDDEC
C93_DTDEC
C93_INDDEP

indDecisao

C93_IDVARA
C93_IDVARA
C93_IDVARA
C93_INDAUT

idVara
idVara
idVara

Exemplo:
Begin Transaction
Aadd(
Aadd(
Aadd(
Aadd(

aChave,
aChave,
aChave,
aChave,

{
{
{
{

"C",
"C",
"C",
"C",

"C93_TPPROC","1", .T.} )
"C93_NRPROC","15000259872013,.T.} )
"C93_DTINI", "072013", .T. } )
"C93_DTFIN", "102013", .T.} )

//
//Funo para validar se a operao desejada pode ser realizada
//

Verso 1.0

37

FGetIDInt()

Integrao TAF
Ttulo do documento
If FTafVldOpe( 'C93', 2, @nOpc, cFilEv, @aIncons, aChave, @oModel, 'TAFA245', cCmpsNoUpd, 1 )
//
//Quando se tratar de uma Excluso direta, preciso apenas realizar
//o Commit(), no sendo necessria nenhuma manuteno nas informaes
//
If nOpc <> 5
oModel:LoadValue( "MODEL_C93 ", "C93_FILIAL", C93->C93_FILIAL)
oModel:LoadValue( "MODEL_C93 ", "C93_INDDEP", S )
EndIf
//
//Efetiva a operao desejada
//
FWFormCommit( oModel )
oModel:DeActivate()
EndIf
End Transaction

38

Verso 1.0

Integrao TAF

S-1080 Tabela de Operadores Porturios


Rotina:
Model MVC:
Validao
Gerao XML
Regras

TAFA248.prw
MODEL_C8W
TAF248VLD()
TAF248XML()
#
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22

TAG
eSocial
evtTabOperPortuario
Id
versao
ideEvento
tpAmb
procEmi
indSegmento
verProc
ideEmpregador
tpInscricao
nrInscricao
infoOperPortuario
Incluso / alterao
ideOperPortuario
cnpjOpPortuario
iniValidade
fimValidade
dadosOperPortuario
aliqRat
Fat
aliqRatAjustada

Model
MODEL_C8W
MODEL_C8W
MODEL_C8W
MODEL_C8W
MODEL_C8W
MODEL_C8W

Campo

FGetIDInt()

C8W_CNPJOP
C8W_DTINI
C8W_DTFIN
C8W_ALQRAT
C8W_FAP
C8W_ALQAJU

Exemplo:
Begin Transaction
Aadd( aChave, {"C", "C8W_CNPJOP", " 17066878000122", .T.} )
//cnpjOpPortuario
Aadd( aChave, {"C", "C8W_DTINI", "012013", .T.} )
//iniValidade
Aadd( aChave, {"C", "C8W_DTFIN", "122013", .T.} )
//fimValidade
//
//Funo para validar se a operao desejada pode ser realizada
//
If FTafVldOpe( 'C8W', 2, @nOpc, cFilEv, @aIncons, aChave, @oModel, 'TAFA248', cCmpsNoUpd )
//
//Quando se tratar de uma Excluso direta, preciso apenas realizar
//o Commit(), no sendo necessria nenhuma manuteno nas informaes
//
If nOpc <> 5
oModel:LoadValue( "MODEL_C8W", "C8W_CNPJOP", C8W->C8W_CNPJOP)
oModel:LoadValue( "MODEL_C8W", "C8W_DTINI", C8W->C8W_DTINI)
oModel:LoadValue( "MODEL_C8W", "C8W_DTFIN", C8W->C8W_DTFIN)

Verso 1.0

39

Integrao TAF
Ttulo do documento
EndIf
//
//Efetiva a operao desejada
//
FWFormCommit( oModel )
oModel:DeActivate()
EndIf
End Transaction

40

Verso 1.0

Integrao TAF

S-1100 eSocial Mensal Abertura


Rotina:
Model MVC:
Validao
Gerao XML
Regras

TAFA249
MODEL_C8Y
TAF249VLD()
TAF249XML()
#
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38

TAG
evtFpAbertura
Verso
infEvento
idEvento
ideEvento
indRetificacao
nrRecibo
indApuracao
perApuracao
tpAmb
procEmi
indSegmento
verProc
ideEmpregador
tpInscricao
nrInscricao
ideRespInformacao
nomeResponsavel
cpfResponsavel
Telefone
Fax
Email
infoSubstPatronal
indSubstPatronal
percAliqPatronal
recExpServicos
recBrutaExp12m
recBrutaTot12m
vlrTribRecBruta
qtdMesesAtiv
percReducaoLei11774
recAtivConcomitante
recBrutaTotMes
recBrutaTotAno
recBrutaAtssMes
recBrutaAtssAno
fatorMes
Fator13

Verso 1.0

Model
-

Campo

MODEL_C8Y
MODEL_C8Y
-

C8Y_INDAPU
C8Y_PERAPU

MODEL_C8Y
MODEL_C8Y
MODEL_C8Y
MODEL_C8Y
MODEL_C8Y
MODEL_C8Y
MODEL_C8Y
MODEL_C8Y
MODEL_C8Y
MODEL_C8Y
MODEL_C8Y
MODEL_C8Y
MODEL_C8Y
MODEL_C8Y

C8Y_RESPON
-

41

C8Y_INDSPT
C8Y_ALQPTN
C8Y_RBRVEN
C8Y_RBRTOT
C8Y_VLIMPC
C8Y_QTDMES
C8Y_PERCRZ
C8Y_RBTMES
C8Y_RBTANO
C8Y_RBTATM
C8Y_RBTATA
C8Y_FATMES
C8Y_FATDTS

FGetIDInt()

cpfResponsavel

Integrao TAF
Ttulo do documento
Exemplo:
Aadd( aChave, { "C", "C8Y_INDAPU", "1", .T. } )
Aadd( aChave, { "C", "C8Y_PERAPU", "102013", .T. } )
Begin Transaction
If FTafVldOpe( "C8Y", 2, @nOpc, cFilEv, @aIncons, aChave, @oModel, "TAFA249", cCmpsNoUpd )
/*
Carrega array com os campos De/Para de gravao das informaes
*/
aRules := TAF249Rul(cCabec)
oModel:LoadValue( "MODEL_C8Y", "C8Y_FILIAL", C8Y->C8Y_FILIAL )
oModel:LoadValue( "MODEL_C8Y", "C8Y_PERAPU", "102013")
/*
Efetiva a operao desejada
*/
FWFormCommit( oModel )
lRet := .T.
oModel:DeActivate()
EndIf
End Transaction

42

Verso 1.0

Integrao TAF

S-1200 eSocial Mensal Remunerao do Trabalhador


Rotina:
Model
MVC:
Validao
Gerao
XML
Regras

TAFA250
MODEL_C91
TAF250VLD()
TAF250XML()
#
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40

41

TAG
evtFpRemuneracao
Verso
infEvento
idEvento
ideEvento
indRetificacao
nrRecibo
indApuracao
perApuracao
tpAmb
procEmi
indSegmento
verProc
ideEmpregador
tpInscricao
nrInscricao
ideTrabalhador
cpfTrab
nisTrab
qtdDepSF
qtdDepIRRF
infoMultiplosVinculos
indMV
remOutrasEmpresas
tpInscricao
nrInscricao
vlrRemuneracao
infoSimplesAtivConcomitante
indSimples
infoComplementares
nomeTrab
dtNascto
codCBO
infoTrabAvulso
cnpjSindicato
fPasSindicato
codTerceiros
procJudTrabalhador
tpTributo
nrProcJud
infoPeriodoApuracao

Verso 1.0

Model
-

Campo

MODEL_C91
MODEL_C91
MODEL_C91
-

C91_INDAPU
C91_PERAPU

C91_TRABAL

MODEL_C91

C91_INDMVI

MODEL_C91

C91_INDSIM

MODEL_C91
MODEL_C91
-

C91_CNPJSI
C91_FPASSI
-

MODEL_CRN
MODEL_CRN
-

CRN_TPTRIB
CRN_IDPROC

43

FGetIDInt()

cpfTrab

"fpas","codTerceiros"

Integrao TAF
Ttulo do documento
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87

ideEstabLotacao
tpInscricao
nrInscricao
codLotacal
remunPeriodoApuracao
Matricula
codCateg
bcCP
bcIRRF
bcFGTS
descCP
vlrProventos
vlrDescontos
vlrLiquido
itensRemun
codRubrica
qtdRubrica
vlrRubrica
infoAgenteNocivo
grauExp
infoRescisao
nrReciboDeslig
infoPeriodoAnterior
ideAcordoDissidio
dtAcordo
tpAcordo
idePeriodo
perReferencia
ideEstabLotacao
tpInscricao
nrInscricao
codLotacao
remunPeriodoAnterior
Matricula
codCateg
bcCP
bcIRRF
bcFGTS
descCP
vlrProventos
vlrDescontos
vlrLiquido
itensRemun
codRubrica
qtdRubrica
vlrRubrica

MODEL_C9K
MODEL_C9K

C9K_ESTABE
C9K_LOTACA

MODEL_C9L
MODEL_C9L
MODEL_C9L
MODEL_C9L
MODEL_C9L
MODEL_C9L
MODEL_C9L
MODEL_C9L
MODEL_C9L

C9L_MATRIC
C9L_CODCAT
C9L_BCPREV
C9L_BCIRRF
C9L_BCFGTS
C9L_VDESPR
C9L_PROVEN
C9L_DESCON
C9L_VLRLIQ

MODEL_C9M
MODEL_C9M
MODEL_C9M

C9M_CODRUB
C9M_QTDRUB
C9M_VLRRUB

MODEL_C9L

C9L_GRAEXP

MODEL_C9L

C9L_NRECDE

MODEL_C9N
MODEL_C9N

C9N_DTACOR
C9N_TPACOR

MODEL_C9O

C9O_PERREF

MODEL_C9P
MODEL_C9P

C9P_ESTABE
C9P_LOTACA

MODEL_C9Q
MODEL_C9Q
MODEL_C9Q
MODEL_C9Q
MODEL_C9Q
MODEL_C9Q
MODEL_C9Q
MODEL_C9Q
MODEL_C9Q

C9Q_MATRIC
C9Q_CODCAT
C9Q_BCPREV
C9Q_BCIRRF
C9Q_BCFGTS
C9Q_VDESPR
C9Q_PROVEN
C9Q_DESCON
C9Q_VLRLIQ

MODEL_C9R
MODEL_C9R
MODEL_C9R

C9R_CODRUB
C9R_QTDRUB
C9R_VLRRUB

44

codCateg

codRubrica

tpInscricao,nrInscricao
codLotacao

codCateg

codRubrica

Verso 1.0

Integrao TAF

infoAgenteNocivo
grauExp
totRemuneracao
perReferencia
Matricula
codCateg
bcCP
bcFGTS
bcIRRF
descCP

88
89
90
91
92
93
94
95
96
97

MODEL_C9Q

C9Q_GRAEXP

MODEL_C9U
MODEL_C9U
MODEL_C9U
MODEL_C9U
MODEL_C9U
MODEL_C9U
MODEL_C9U

C9U_PERREF
C9U_MATRIC
C9U_CODCAT
C9U_BCPREV
C9U_BCFGTS
C9U_BCIRRF
C9U_VDESPR

codCateg

Exemplo:
cXml := xFunLerXML()
oDados := TXmlManager():New()
oDados:Parse(cXml)
Aadd( aChave, {"C", "C91_INDAPU", "1" , .T. } )
Aadd( aChave, {"C", "C91_PERAPU", "122013" , .T. } )
Aadd( aChave, {"C", "C91_TRABAL", FGetIdInt("cpfTrab","","37400956876") , .T.} )
Begin Transaction
//
//Funo para validar se a operao desejada pode ser realizada
//
If FTafVldOpe( 'C91', 2, @nOpc, cFilEv, @aIncons, aChave, @oModel, 'TAFA250', cCmpsNoUpd )
//
//Quando se tratar de uma Excluso direta, preciso apenas realizar
//o Commit(), no sendo necessria nenhuma manuteno nas informaes
//
If nOpc <> 5
oModel:LoadValue( "MODEL_C91", "C91_INDAPU", C91->C91_INDAPU)
oModel:LoadValue( "MODEL_C91", "C91_PERAPU", C91->C91_PERAPU)
oModel:LoadValue( "MODEL_C91", "C91_TRABAL", C91->C91_TRABAL)
nC9K := 1
cC9KPath := "/evtFpRemuneracao/infEvento/infoPeriodoApuracao/ideEstabLotacao[" +
CVALTOCHAR(nC9K) + "]"
If nOpc == 4 .And. oDados:XPathHasNode( cC9KPath )
For nJ := 1 to oModel:GetModel( 'MODEL_C9K' ):Length()
oModel:GetModel( 'MODEL_C9K' ):GoLine(nJ)
oModel:GetModel( 'MODEL_C9K' ):DeleteLine()
Next nJ
EndIf
//
//Roda o XML parseado para gravar as novas informaes no GRID
//
nC9K := 1
While oDados:XPathHasNode(cC9KPath)
oModel:GetModel( 'MODEL_C9K' ):LVALID

:= .T.

If nOpc == 4 .Or. nC9K > 1


oModel:GetModel( 'MODEL_C9K' ):AddLine()
EndIf
oModel:LoadValue( "MODEL_C9K", "C9K_ESTABE",
"nrInscricao", "1" , "123456") )

Verso 1.0

45

FGetIdInt( "tpInscricao",

Integrao TAF
Ttulo do documento
oModel:LoadValue( "MODEL_C9K", "C9K_LOTACA", FGetIdInt( "codLotacao", "", "01")
)
nC9L:= 1
cC9LPath := cC9KPath+"/remunPeriodoApuracao[" + CVALTOCHAR(nC9L) + "]"
If nOpc == 4 .And. oDados:XPathHasNode( cC9LPath )
For nJ := 1 to oModel:GetModel( 'MODEL_C9L' ):Length()
oModel:GetModel( 'MODEL_C9L' ):GoLine(nJ)
oModel:GetModel( 'MODEL_C9L' ):DeleteLine()
Next nJ
EndIf
nC9L := 1
While oDados:XPathHasNode(cC9LPath)
oModel:GetModel( 'MODEL_C9L' ):LVALID

:= .T.

If nOpc == 4 .Or. nC9L > 1


oModel:GetModel( 'MODEL_C9L' ):AddLine()
EndIf
oModel:LoadValue( "MODEL_C9L", "C9L_VLRLIQ, "10")
oModel:LoadValue( "MODEL_C9L", "C9L_NRECDE", "0123456789")
nC9M:= 1
cC9MPath := cC9LPath+"/itensRemun[" + CVALTOCHAR(nC9M) + "]"
If nOpc == 4 .And. oDados:XPathHasNode( cC9MPath )
For nJ := 1 to oModel:GetModel( 'MODEL_C9M' ):Length()
oModel:GetModel( 'MODEL_C9M' ):GoLine(nJ)
oModel:GetModel( 'MODEL_C9M' ):DeleteLine()
Next nJ
EndIf
nC9M := 1
While oDados:XPathHasNode(cC9MPath)
oModel:GetModel( 'MODEL_C9M' ):LVALID

:= .T.

If nOpc == 4 .Or. nC9M > 1


oModel:GetModel( 'MODEL_C9M' ):AddLine()
EndIf
oModel:LoadValue( "MODEL_C9M", "C9M_QTDRUB" , "2")
nC9M++
cC9MPath := cC9LPath+"/itensRemun[" + CVALTOCHAR(nC9M) + "]"
EndDo
nC9L++
cC9LPath := cC9KPath+"/remunPeriodoApuracao[" + CVALTOCHAR(nC9L) + "]"
EndDo
nC9K++
cC9KPath := "/evtFpRemuneracao/infEvento/infoPeriodoApuracao/ideEstabLotacao["
+ CVALTOCHAR(nC9K) + "]"
EndDo
nC9N := 1
cC9NPath := "/evtFpRemuneracao/infEvento/infoPeriodoAnterior/ideAcordoDissidio[" +
CVALTOCHAR(nC9N) + "]"
If nOpc == 4 .And. oDados:XPathHasNode( cC9NPath )
For nJ := 1 to oModel:GetModel( 'MODEL_C9N' ):Length()
oModel:GetModel( 'MODEL_C9N' ):GoLine(nJ)
oModel:GetModel( 'MODEL_C9N' ):DeleteLine()
Next nJ
EndIf
//
//Roda o XML parseado para gravar as novas informaes no GRID
//
nC9N := 1
While oDados:XPathHasNode(cC9NPath)
oModel:GetModel( 'MODEL_C9N' ):LVALID
:= .T.
If nOpc == 4 .Or. nC9N > 1

46

Verso 1.0

Integrao TAF

oModel:GetModel( 'MODEL_C9N' ):AddLine()


EndIf
oModel:LoadValue( "MODEL_C9N", "C9N_TPACOR" , "1")
nC9O:= 1
cC9OPath := cC9NPath + "/idePeriodo[" + CVALTOCHAR(nC9O) + "]"
If nOpc == 4 .And. oDados:XPathHasNode( cC9OPath )
For nJ := 1 to oModel:GetModel( 'MODEL_C9O' ):Length()
oModel:GetModel( 'MODEL_C9O' ):GoLine(nJ)
oModel:GetModel( 'MODEL_C9O' ):DeleteLine()
Next nJ
EndIf
nC9O := 1
While oDados:XPathHasNode(cC9OPath)
oModel:GetModel( 'MODEL_C9O' ):LVALID

:= .T.

If nOpc == 4 .Or. nC9O > 1


oModel:GetModel( 'MODEL_C9O' ):AddLine()
EndIf
oModel:LoadValue( "MODEL_C9O", "C9O_PERREF, "102013")
nC9P:= 1
cC9PPath := cC9OPath + "/ideEstabLotacao[" + CVALTOCHAR(nC9P) + "]
If nOpc == 4 .And. oDados:XPathHasNode( cC9PPath )
For nJ := 1 to oModel:GetModel( 'MODEL_C9P' ):Length()
oModel:GetModel( 'MODEL_C9P' ):GoLine(nJ)
oModel:GetModel( 'MODEL_C9P' ):DeleteLine()
Next nJ
EndIf
nC9P := 1
While oDados:XPathHasNode(cC9PPath)
oModel:GetModel( 'MODEL_C9P' ):LVALID

:= .T.

If nOpc == 4 .Or. nC9P > 1


oModel:GetModel( 'MODEL_C9P' ):AddLine()
EndIf
oModel:LoadValue( "MODEL_C9P", "C9P_ESTABE", FGetIdInt(
"tpInscricao", "nrInscricao", "1" , "0235789" ))
nC9Q:= 1
cC9QPath := cC9PPath+ "/remunPeriodoAnterior[" +
CVALTOCHAR(nC9Q) + "]"
If nOpc == 4 .And. oDados:XPathHasNode( cC9QPath )
For nJ := 1 to oModel:GetModel( 'MODEL_C9Q' ):Length()
oModel:GetModel( 'MODEL_C9Q' ):GoLine(nJ)
oModel:GetModel( 'MODEL_C9Q' ):DeleteLine()
Next nJ
EndIf
nC9Q := 1
While oDados:XPathHasNode(cC9QPath)
oModel:GetModel( 'MODEL_C9Q' ):LVALID

:= .T.

If nOpc == 4 .Or. nC9Q > 1


oModel:GetModel( 'MODEL_C9Q' ):AddLine()
EndIf
oModel:LoadValue( "MODEL_C9Q", "C9Q_DESCON" , "1")
nC9R:= 1
cC9RPath := cC9QPath + "/itensRemun[" + CVALTOCHAR(nC9R)
+ "]"
If nOpc == 4 .And. oDados:XPathHasNode( cC9QPath )
For nJ := 1 to oModel:GetModel( 'MODEL_C9R'
):Length()

Verso 1.0

47

Integrao TAF
Ttulo do documento
oModel:GetModel( 'MODEL_C9R' ):GoLine(nJ)
oModel:GetModel( 'MODEL_C9R'
):DeleteLine()
Next nJ
EndIf
nC9R := 1
While oDados:XPathHasNode(cC9RPath)
oModel:GetModel( 'MODEL_C9R' ):LVALID

:=

.T.
If nOpc == 4 .Or. nC9R > 1
oModel:GetModel( 'MODEL_C9R' ):AddLine()
EndIf
oModel:LoadValue( "MODEL_C9R", "C9R_QTDRUB", "5")
nC9R++
cC9RPath := cC9QPath + "/itensRemun[" +
CVALTOCHAR(nC9R) + "]"
EndDo
nC9Q++
cC9QPath := cC9PPath+ "/remunPeriodoAnterior[" +
CVALTOCHAR(nC9Q) + "]"
EndDo
nC9P++
cC9PPath := cC9OPath+"/itensRemun[" + CVALTOCHAR(nC9P) + "]"
EndDo
nC9O++
cC9OPath := cC9NPath+"/remunPeriodoApuracao[" + CVALTOCHAR(nC9O) + "]"
EndDo
nC9N++
cC9NPath := "/evtFpRemuneracao/infEvento/infoPeriodoApuracao/ideEstabLotacao["
+ CVALTOCHAR(nC9N) + "]"
EndDo
nC9S := 1
cC9SPath := "/evtFpRemuneracao/infEvento/infoPagtosEfetuados[" + CVALTOCHAR(nC9S) + "]"
If nOpc == 4 .And. oDados:XPathHasNode( cC9SPath )
For nJ := 1 to oModel:GetModel( 'MODEL_C9S' ):Length()
oModel:GetModel( 'MODEL_C9S' ):GoLine(nJ)
oModel:GetModel( 'MODEL_C9S' ):DeleteLine()
Next nJ
EndIf
//
//Quando se trata de uma alterao, deleta-se todas as linhas do Grid
//
nC9U := 1
cC9UPath := "/evtFpRemuneracao/infEvento/totRemuneracao[" + CVALTOCHAR(nC9U) + "]"
If nOpc == 4 .And. oDados:XPathHasNode( cC9UPath )
For nJ := 1 to oModel:GetModel( 'MODEL_C9U' ):Length()
oModel:GetModel( 'MODEL_C9U' ):GoLine(nJ)
oModel:GetModel( 'MODEL_C9U' ):DeleteLine()
Next nJ
EndIf
//
//Roda o XML parseado para gravar as novas informaes no GRID
//
nC9U := 1
While oDados:XPathHasNode(cC9UPath)
oModel:GetModel( 'MODEL_C9U' ):LVALID

:= .T.

If nOpc == 4 .Or. nC9U > 1


oModel:GetModel( 'MODEL_C9U' ):AddLine()
EndIf
oModel:LoadValue( "MODEL_C9U", "C9U_VDESPR, "1")

48

Verso 1.0

Integrao TAF

nC9U++
cC9UPath := "/evtFpRemuneracao/infEvento/totRemuneracao[" + CVALTOCHAR(nC9U) +
"]"
EndDo
//
//Quando se trata de uma alterao, deleta-se todas as linhas do Grid
//
nC9J := 1
cC9JPath :=
"evtFpRemuneracao/infEvento/ideTrabalhador/infoMultiplosVinculos/remunOutrasEmpresas+[" + CVALTOCHAR(nC9J) +
"]"
If nOpc == 4 .And. oDados:XPathHasNode( cC9JPath )
For nJ := 1 to oModel:GetModel( 'MODEL_C9J' ):Length()
oModel:GetModel( 'MODEL_C9J' ):GoLine(nJ)
oModel:GetModel( 'MODEL_C9J' ):DeleteLine()
Next nJ
EndIf
//
//Roda o XML parseado para gravar as novas informaes no GRID
//
nC9J := 1
While oDados:XPathHasNode(cC9JPath)
oModel:GetModel( 'MODEL_C9J' ):LVALID

:= .T.

If nOpc == 4 .Or. nC9J > 1


oModel:GetModel( 'MODEL_C9J' ):AddLine()
EndIf
oModel:LoadValue( "MODEL_C9J", "C9J_VLREMU" , "500")
nC9J++
cC9JPath :=
"evtFpRemuneracao/infEvento/ideTrabalhador/infoMultiplosVinculos/remunOutrasEmpresas+[" + CVALTOCHAR(nC9J) +
"]"
EndDo
EndIf
//
//Efetiva a operao desejada
//
FWFormCommit( oModel )
lRet := .T.
oModel:DeActivate()
EndIf
End Transaction

Verso 1.0

49

Integrao TAF
Ttulo do documento
S-1300 Eventos Peridicos Pagamentos Diversos
Rotina:
Model
MVC:
Validao
Gerao
XML
Regras

TAFA285
MODEL_CRW; MODEL_CRX; MODEL_CRY; MODEL_CU2; MODEL_CRZ; MODEL_CU3;
MODEL_CU4; MODEL_CU5; MODEL_CU6; MODEL_CU7; MODEL_CU8; MODEL_CU9;
TAF285VLD()
TAF285XML()

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

TAG
eSocial
evtPagtosDiversos
Id
versao
ideEvento
indRetificacao
nrRecibo
IndApuracao
perApuracao
tpAmb
procEmi
indSegmento
verProc
ideEmpregador
tpInscricao
nrInscricao
ideBeneficiario
codRendimento
tpInscBeneficiario
nrInscBeneficiario
dadosNaoResidente
dadosPessoais
nomeBeneficiario
dadosEndereco
paisResidencia
descLogradouro
nrLogradouro
Complemento
Bairro
nomeCidade

MODEL_CRW
MODEL_CRW
MODEL_CRW
MODEL_CRW
MODEL_CRW
MODEL_CRW
MODEL_CRW
MODEL_CRW
MODEL_CRW
MODEL_CRW
MODEL_CRW
MODEL_CRW

31
32
33
34
35
36
37
38
39
40
41
42
43
44

codPostal
dadosFiscais
indNIF
nifBeneficiario
relFontePagadora
dadosMolestiaGrave
dtLaudo
infoPagto
pagtoResidente
pagtoBPF
dtPagto
indSuspExigibilidade
indDecTerceiro
vlrRendTributavel

MODEL_CRW
MODEL_CRW
MODEL_CRW
MODEL_CRW
MODEL_CRW
MODEL_CRX
MODEL_CRX
MODEL_CRX
MODEL_CRX

Model

50

Campo

FGetIDInt()

CRW_INDAPU
CRW_PERAPU

CRW_IDREND
CRW_TPINSC
CRW_NRINSC

codRendimento

CRW_NOMEBE
CRW_IDPAIS
CRW_LOGRAD
CRW_NUMERO
CRW_COMPLE
CRW_BAIRRO
CRW_CODMU
N
CRW_CEP
CRW_TPNIF
CRW_NIF
CRW_RELFON

paisResidencia

relFontePagadora

CRW_DTLAUD

CRX_DATA
CRX_EXISUS
CRX_DECTER
CRX_VLRRTR

Verso 1.0

Integrao TAF

45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100

vlrIRRF
detDeducao
indTpDeducao
vlrDeducao
rendIsento
tpIsencao
vlrIsento
detOutros
descRendimento
detCompetencia
indPerReferencia
perRefPagto
vlrRendTributavel
compJudicial
vlrCompAnoCalendario
vlrcompAnosAnteriores
depJudicial
vlrDepJudicial
infoRRA
tpProcRRA
nrProcRRA
natRRA
qtdMesesRRA
despProcJudicial
vlrDespCustas
vlrDespAdvogados
ideAdvogado
tpInscAdvogado
nrInscAdvogado
vlrAdvogado
infoProcJudicial
nrProcJud
indOrigemRecursos
despProcJudicial
vlrDespCustas
vlrDespAdvogados
ideAdvogado
tpInscAdvogado
nrInscAdvogado
vlrAdvogado
origemRecursos
cnpjOrigemRecursos
pagtoBPJ
dtPagto
vlrRendTributavel
vlrIRRF
pagtoNaoResidente
dtPagto
tpRendimento
formaTributacao
vlrPago
vlrIRRF
infoPlanoSaudeColetivo
cnpjOperadora
vlrPagoTitular
depPlano

Verso 1.0

MODEL_CRX
MODEL_CRY
MODEL_CRY
MODEL_CU2
MODEL_CU2
MODEL_CU2
MODEL_CRZ
MODEL_CRZ
MODEL_CRZ
MODEL_CRX
MODEL_CRX
MODEL_CRX
MODEL_CU3
MODEL_CU3
MODEL_CU3
MODEL_CU3
MODEL_CU3
MODEL_CU4
MODEL_CU4
MODEL_CU5
MODEL_CU5
MODEL_CU5
MODEL_CU5
MODEL_CU6
MODEL_CU6
MODEL_CU5
MODEL_CU7
MODEL_CU7
MODEL_CU7
MODEL_CU8
MODEL_CU8
MODEL_CU8
MODEL_CU8
MODEL_CU8
MODEL_CRW
MODEL_CRW
-

51

CRX_VLRIRR
CRY_TPDEDU
CRY_VLRDED
CU2_TPISEN
CU2_VLRISE

tpIsencao

CU2_REFER
CRZ_PERREF
CRZ_REFER
CRZ_RENTRI
CRX_VLRCAC
CRX_VLRCCA
CRX_VLRDJU
CU3_IDPROC
CU3_NATRRA
CU3_QTDMES

tpProcRRA, nrProcRRA
-

CU3_VLRCUS
CU3_VLRADV
CU4_IDADV
CU4_VLRADV

tpInscAdvogado, nrInscAdvogado
-

CU5_IDPROC
CU5_ORIREC

"","nrProcJud"

CU5_VLRCUS
CU5_VLRADV
CU6_IDADV
CU6_VLRADV

"tpInscAdvogado","nrInscAdvogado"
-

CU5_CNPJOR
CU7_DTPGTO
CU7_VLRPGT
CU7_VLRIRR
CU8_DTPGTO
CU8_IDTPRE
CU8_IDFTRI
CU8_VLRPGT
CU8_VLRIRR
CRW_CNPJPS
CRW_VLRTIT

tpRendimento
formaTributacao

Integrao TAF
Ttulo do documento
101
102
103
104
105

cpfDep
dtNasctoDep
nomeDep
relDependencia
vlrPagoDep

MODEL_CU9
MODEL_CU9
MODEL_CU9
MODEL_CU9
MODEL_CU9

CU9_CPFDEP
CU9_DTNASC
CU9_NOMDEP
CU9_TPDEP
CU9_VLRPGT

relDependencia

Exemplo:
aAdd( aChave, {"C", "CRW_PERAPU" ,cCabec + "/ideEvento/indApuracao" , .F. } )
aAdd( aChave, {"C", "CRW_INDAPU",cCabec + "/ideEvento/perApuracao", .F. } )
aAdd( aChave, {"C", "CRW_IDREND",FGetIdInt("codRendimento", "", cCabec + "/ideBeneficiario/codRendimento" ), .T. } )
aAdd( aChave, {"C", "CRW_TPINSC",cCabec + "/ideBeneficiario/tpInscBeneficiario", .F. } )
aAdd( aChave, {"C", "CRW_NRINSC",cCabec + "/ideBeneficiario/nrInscBeneficiario", .F. } )
Begin Transaction
//Funcao para validar se a operacao desejada pode ser realizada
If FTafVldOpe( "CRW", 2, @nOpc, cFilEv, @aIncons, aChave, @oModel, "TAFA285", cCmpsNoUpd )
//Carrego array com os campos De/Para de gravacao das informacoes
aRules := TAF285Rul()
If nOpc <> 5
oModel:LoadValue( "MODEL_CRW", "CRW_FILIAL", CRW->CRW_FILIAL )
//
//Rodo o aRules para gravar as informacoes
//
For nlI := 1 To Len( aRules )
oModel:LoadValue( "MODEL_CRW", aRules[ nlI, 01 ], FTafGetVal( aRules[ nlI, 02 ], aRules[nlI, 03], aRules[nlI, 04], @aIncons, .F. )
)
Next
//INICIO CRX- <pagtoBPF>

nCRX := 1
cCRXPath := cCabec + "/infoPagto/pagtoResidente/pagtoBPF[" + cValToChar(nCRX) + "]"
//Deleta as linhas existentes se for alteraca
If nOpc == 4 .And. oDados:XPathHasNode( cCRXPath )
For nCRX := 1 to oModel:GetModel( 'MODEL_CRX' ):Length()
oModel:GetModel( 'MODEL_CRX' ):GoLine(nCRX)
oModel:GetModel( 'MODEL_CRX' ):DeleteLine()
Next nCRX
EndIf
//Alimenta o modelo CRX
While oDados:XPathHasNode( cCabec + "/infoPagto/pagtoResidente/pagtoBPF[" + cValToChar(nCRX) + "]" )
If nOpc == 4 .Or. nCRX > 1
// Informa que a linha est vlida para que seja includa uma nova linha
oModel:GetModel( "MODEL_CRX" ):LVALID := .T.
// Inclui uma linha a cada volta do lao
oModel:GetModel( "MODEL_CRX" ):AddLine()
EndIf
// Grava dados no model
oModel:LoadValue( "MODEL_CRX", "CRX_DATA" , FTafGetVal( cCRXPath + "/dtPagto", "D", .F., @aIncons, .F. ) )
oModel:LoadValue( "MODEL_CRX", "CRX_EXISUS", FTafGetVal( cCRXPath + "/indSuspExigibilidade", "C", .F., @aIncons, .T. ) )
oModel:LoadValue( "MODEL_CRX", "CRX_DECTER", FTafGetVal( cCRXPath + "/indDecTerceiro", "C", .F., @aIncons, .T. ) )
oModel:LoadValue( "MODEL_CRX", "CRX_VLRRTR", FTafGetVal( cCRXPath + "/vlrRendTributavel", "N", .F., @aIncons, .F. ) )
oModel:LoadValue( "MODEL_CRX", "CRX_CODIGO", Strzero(nCRX,2))

52

Verso 1.0

Integrao TAF

//INICIO CRY- <detDeducao>

nCRY := 1
cCRYPath := cCabec + "/infoPagto/pagtoResidente/pagtoBPF/detDeducao[" + cValToChar(nCRY) + "]
//Deleta as linhas existentes se for alteraca
If nOpc == 4 .And. oDados:XPathHasNode( cCRYPath )
For nCRY := 1 to oModel:GetModel( 'MODEL_CRY' ):Length()
oModel:GetModel( 'MODEL_CRY' ):GoLine(nCRY)
oModel:GetModel( 'MODEL_CRY' ):DeleteLine()
Next nCRY
EndIf
//Alimenta o modelo CRY
While oDados:XPathHasNode( cCabec + "/infoPagto/pagtoResidente/pagtoBPF/detDeducao[" + cValToChar(nCRY) + "]" )
cCRYPath := cCabec + "/infoPagto/pagtoResidente/pagtoBPF/detDeducao[" + cValToChar(nCRY) + "]
If nOpc == 4 .Or. nCRY > 1
// Informa que a linha est vlida para que seja includa uma nova linha
oModel:GetModel( "MODEL_CRY" ):LVALID := .T.
// Inclui uma linha a cada volta do lao
oModel:GetModel( "MODEL_CRY" ):AddLine()
EndIf
oModel:LoadValue( "MODEL_CRY", "CRY_VLRDED", FTafGetVal( cCRYPath + "/vlrDeducao", "N", .F., @aIncons, .F. ) )
nCRY ++
EndDo
//INICIO CRZ - <rendIsento>

nCRZ := 1
cCRZPath := cCabec + "/infoPagto/pagtoResidente/pagtoBPF/detCompetencia[" + cValToChar(nCRZ) + "]"
//Deleta as linhas existentes se for alteracao
If nOpc == 4 .And. oDados:XPathHasNode( cCRZPath )
For nCRZ := 1 to oModel:GetModel( 'MODEL_CRZ' ):Length()
oModel:GetModel( 'MODEL_CRZ' ):GoLine(nCRZ)
oModel:GetModel( 'MODEL_CRZ' ):DeleteLine()
Next nCRZ
EndIf
//Alimenta o modelo CRZ
While oDados:XPathHasNode( cCabec + "/infoPagto/pagtoResidente/pagtoBPF/detCompetencia[" + cValToChar(nCRZ) + "]" )
cCRZPath := cCabec + "/infoPagto/pagtoResidente/pagtoBPF/detCompetencia[" + cValToChar(nCRZ) + "]"
If nOpc == 4 .Or. nCRZ > 1
// Informa que a linha est vlida para que seja includa uma nova linha
oModel:GetModel( "MODEL_CRZ" ):LVALID := .T.
// Inclui uma linha a cada volta do lao
oModel:GetModel( "MODEL_CRZ" ):AddLine()
EndIf
oModel:LoadValue( "MODEL_CRZ", "CRZ_REFER" , FTafGetVal( cCRZPath + "/perRefPagto", "C", .F., @aIncons, .F. ) )
nCRZ ++
EndDo
//INICIO CU2- <rendIsento>
nCU2 := 1
cCU2Path := cCabec + "/infoPagto/pagtoResidente/pagtoBPF/rendIsento[" + cValToChar(nCU2) + "]
//Deleta as linhas existentes se for alteraca
If nOpc == 4 .And. oDados:XPathHasNode( cCU2Path )
For nCU2 := 1 to oModel:GetModel( 'MODEL_CU2' ):Length()
oModel:GetModel( 'MODEL_CU2' ):GoLine(nCU2)
oModel:GetModel( 'MODEL_CU2' ):DeleteLine()
Next nCU2

Verso 1.0

53

Integrao TAF
Ttulo do documento
EndIf
//Alimenta o modelo CU2
While oDados:XPathHasNode( cCabec + "/infoPagto/pagtoResidente/pagtoBPF/rendIsento[" + cValToChar(nCU2) + "]" )
cCU2Path := cCabec + "/infoPagto/pagtoResidente/pagtoBPF/rendIsento[" + cValToChar(nCU2) + "]
If nOpc == 4 .Or. nCU2 > 1
// Informa que a linha est vlida para que seja includa uma nova linha
oModel:GetModel( "MODEL_CU2" ):LVALID := .T.
// Inclui uma linha a cada volta do lao
oModel:GetModel( "MODEL_CU2" ):AddLine()
EndIf
oModel:LoadValue( "MODEL_CU2", "CU2_VLRISE", FTafGetVal( cCU2Path + "/vlrIsento", "N", .F., @aIncons, .F. ) )
nCU2 ++
EndDo
//INICIO CU3 - <infoRRA>
nCU3 := 1
cCU3Path := cCabec + "/infoPagto/pagtoResidente/pagtoBPF/infoRRA[" + cValToChar(nCU3) + "]"
//Deleta as linhas existentes se for alteracao
if nOpc == 4 .And. oDados:XPathHasNode( cCU3Path )
For nCU3 := 1 to oModel:GetModel( 'MODEL_CU3' ):Length()
oModel:GetModel( 'MODEL_CU3' ):GoLine(nCU3)
oModel:GetModel( 'MODEL_CU3' ):DeleteLine()
Next nCU3
EndIf
//Alimenta o modelo CU3
While oDados:XPathHasNode( cCabec + "/infoPagto/pagtoResidente/pagtoBPF/infoRRA[" + cValToChar(nCU3) + "]" )
cCU3Path := cCabec + "/infoPagto/pagtoResidente/pagtoBPF/infoRRA[" + cValToChar(nCU3) + "]"
If nOpc == 4 .Or. nCU3 > 1
// Informa que a linha est vlida para que seja includa uma nova linha
oModel:GetModel( "MODEL_CU3" ):LVALID := .T.
// Inclui uma linha a cada volta do lao
oModel:GetModel( "MODEL_CU3" ):AddLine()
EndIf
nGetId := FGetIdInt("tpProcRRA","nrProcRRA", cCU3Path + "/tpProcRRA", cCU3Path + "/nrProcRRA",.T.)
oModel:LoadValue( "MODEL_CU3", "CU3_IDPROC", nGetId)
oModel:LoadValue( "MODEL_CU3", "CU3_NATRRA", FTafGetVal( cCU3Path + "/natRRA", "C", .F., @aIncons, .F. ) )
//INICIO CU4 - <ideAdvogado>

nCU4 := 1
cCU4Path := cCabec + "/infoPagto/pagtoResidente/pagtoBPF/infoRRA/despProcJudicial/ideAdvogado[" +
cValToChar(nCU4) + "]"
//Deleta as linhas existentes se for alteracao
If nOpc == 4 .And. oDados:XPathHasNode( cCU4Path )
For nCU4 := 1 to oModel:GetModel( 'MODEL_CU4' ):Length()
oModel:GetModel( 'MODEL_CU4' ):GoLine(nJ)
oModel:GetModel( 'MODEL_CU4' ):DeleteLine()
Next nCU4
EndIf
//Alimenta o modelo CU4
While oDados:XPathHasNode( cCabec +
"/infoPagto/pagtoResidente/pagtoBPF/infoRRA/despProcJudicial/ideAdvogado[" + cValToChar(nCU4) + "]" )
cCU4Path := cCabec + "/infoPagto/pagtoResidente/pagtoBPF/infoRRA/despProcJudicial/ideAdvogado[" +
cValToChar(nCU4) + "]"
If nOpc == 4 .Or. nCU4 > 1
// Informa que a linha est vlida para que seja includa uma nova linha
oModel:GetModel( "MODEL_CU4" ):LVALID := .T.

54

Verso 1.0

Integrao TAF

// Inclui uma linha a cada volta do lao


oModel:GetModel( "MODEL_CU4" ):AddLine()
EndIf
nGetId := FGetIdInt("tpInscAdvogado","nrInscAdvogado", cCU4Path + "/tpInscAdvogado", cCU4Path +
"/nrInscAdvogado",.T.)
oModel:LoadValue( "MODEL_CU4", "CU4_IDADV", nGetId)
oModel:LoadValue( "MODEL_CU4", "CU4_VLRADV",FTafGetVal( cCU4Path + "/vlrAdvogado", "N", .F.,
@aIncons, .F. ) )
nCU4 ++
EndDo
nCU3 ++
EndDo
//INICIO CU5 - <infoProcJudicial>
nCU5 := 1
cCU5Path := cCabec + "/infoPagto/pagtoResidente/pagtoBPF/infoProcJudicial[" + cValToChar(nCU5) + "]"
//Deleta as linhas existentes se for alteracao
If nOpc == 4 .And. oDados:XPathHasNode( cCU5Path )
For nCU5 := 1 to oModel:GetModel( 'MODEL_CU5' ):Length()
oModel:GetModel( 'MODEL_CU5' ):GoLine(nCU5)
oModel:GetModel( 'MODEL_CU5' ):DeleteLine()
Next nCU5
EndIf
//Alimenta o modelo CU5
While oDados:XPathHasNode( cCabec + "/infoPagto/pagtoResidente/pagtoBPF/infoProcJudicial[" + cValToChar(nCU5) + "]" )
cCU5Path := cCabec + "/infoPagto/pagtoResidente/pagtoBPF/infoProcJudicial[" + cValToChar(nCU5) + "]"
If nOpc == 4 .Or. nCU5 > 1
// Informa que a linha est vlida para que seja includa uma nova linha
oModel:GetModel( "MODEL_CU5" ):LVALID := .T.
// Inclui uma linha a cada volta do lao
oModel:GetModel( "MODEL_CU5" ):AddLine()
EndIf
nGetId := FTafGetVal(FGetIdInt( "","nrProcJud", cCU5Path + "/nrProcJud" ), "C", .T., @aIncons, .F. )
oModel:LoadValue( "MODEL_CU5", "CU5_IDPROC", nGetId )

//INICIO CU6 - <ideAdvogado>

nCU6 := 1
cCU6Path := cCabec + "/infoPagto/pagtoResidente/pagtoBPF/infoProcJudicial/despProcJudicial/ideAdvogado[" +
cValToChar(nCU6) + "]"
//Deleta as linhas existentes se for alteracao
If nOpc == 4 .And. oDados:XPathHasNode( cCU6Path )
For nCU6 := 1 to oModel:GetModel( 'MODEL_CU6' ):Length()
oModel:GetModel( 'MODEL_CU6' ):GoLine(nCU6)
oModel:GetModel( 'MODEL_CU6' ):DeleteLine()
Next nCU6
EndIf
//Alimenta o modelo CU6
While oDados:XPathHasNode( cCabec + "/infoPagto/pagtoResidente/pagtoBPF/infoProcJudicial[" +
cValToChar(nCU5) + "]/despProcJudicial/ideAdvogado[" + cValToChar(nCU6) + "]" )
cCU6Path := cCabec +
"/infoPagto/pagtoResidente/pagtoBPF/infoProcJudicial/despProcJudicial/ideAdvogado[" + cValToChar(nCU6) + "]"
If nOpc == 4 .Or. nCU6 > 1
// Informa que a linha est vlida para que seja includa uma nova linha
oModel:GetModel( "MODEL_CU6" ):LVALID := .T.
// Inclui uma linha a cada volta do lao

Verso 1.0

55

Integrao TAF
Ttulo do documento
oModel:GetModel( "MODEL_CU6" ):AddLine()
EndIf
nGetId := FGetIdInt("tpInscAdvogado","nrInscAdvogado", cCU6Path + "/tpInscAdvogado", cCU6Path +
"/nrInscAdvogado",.T.)
oModel:LoadValue( "MODEL_CU6", "CU6_IDADV", nGetId)
nCU6 ++
EndDo
nCU5 ++
EndDo
nCRX ++
EndDo
//INICIO CU7 - <pagtoBPJ>

nCU7 := 1
cCU7Path := cCabec + "/infoPagto/pagtoResidente/pagtoBPJ[" + cValToChar(nCU7) + "]"
//Deleta as linhas existentes se for alteracao
If nOpc == 4 .And. oDados:XPathHasNode( cCU7Path )
For nCU7 := 1 to oModel:GetModel( 'MODEL_CU7' ):Length()
oModel:GetModel( 'MODEL_CU7' ):GoLine(nCU7)
oModel:GetModel( 'MODEL_CU7' ):DeleteLine()
Next nCU7
EndIf
//Alimenta o modelo CU7
While oDados:XPathHasNode( cCabec + "/infoPagto/pagtoResidente/pagtoBPJ[" + cValToChar(nCU7) + "]" )
cCU7Path := cCabec + "/infoPagto/pagtoResidente/pagtoBPJ[" + cValToChar(nCU7) + "]"
If nOpc == 4 .Or. nCU7 > 1
// Informa que a linha est vlida para que seja includa uma nova linha
oModel:GetModel( "MODEL_CU7" ):LVALID := .T.
// Inclui uma linha a cada volta do lao
oModel:GetModel( "MODEL_CU7" ):AddLine()
EndIf
oModel:LoadValue( "MODEL_CU7", "CU7_DTPGTO", FTafGetVal( cCU7Path + "/dtPagto", "D", .F., @aIncons, .F. ) )
oModel:LoadValue( "MODEL_CU7", "CU7_VLRPGT", FTafGetVal( cCU7Path + "/vlrRendTributavel", "N", .F., @aIncons, .F. ) )
oModel:LoadValue( "MODEL_CU7", "CU7_VLRIRR", FTafGetVal( cCU7Path + "/vlrIRRF", "N", .F., @aIncons, .F. ) )
nCU7 ++
EndDo
//INICIO CU8 - <pagtoNaoResidente>
nCU8 := 1
cCU8Path := cCabec + "/infoPagto/pagtoNaoResidente[" + cValToChar(nCU8) + "]"
//Deleta as linhas existentes se for alteracao
If nOpc == 4 .And. oDados:XPathHasNode( cCU8Path )
For nCU8 := 1 to oModel:GetModel( 'MODEL_CU8' ):Length()
oModel:GetModel( 'MODEL_CU8' ):GoLine(nCU8)
oModel:GetModel( 'MODEL_CU8' ):DeleteLine()
Next nCU8
EndIf
//Alimenta o modelo CU8
While oDados:XPathHasNode( cCabec + "/infoPagto/pagtoNaoResidente[" + cValToChar(nCU8) + "]" )
cCU8Path := cCabec + "/infoPagto/pagtoNaoResidente[" + cValToChar(nCU8) + "]"
If nOpc == 4 .Or. nCU8 > 1
// Informa que a linha est vlida para que seja includa uma nova linha
oModel:GetModel( "MODEL_CU8" ):LVALID := .T.
// Inclui uma linha a cada volta do lao
oModel:GetModel( "MODEL_CU8" ):AddLine()
EndIf

56

Verso 1.0

Integrao TAF

oModel:LoadValue( "MODEL_CU8", "CU8_DTPGTO", FTafGetVal( cCU8Path + "/dtPagto", "D", .F., @aIncons, .F. ) )
oModel:LoadValue( "MODEL_CU8", "CU8_IDTPRE", FTafGetVal( FGetIdInt( "tpRendimento","",cCU8Path +
"/tpRendimento"),"C",.T., @aIncons, .F.) )
oModel:LoadValue( "MODEL_CU8", "CU8_IDFTRI", FTafGetVal( FGetIdInt( "formaTributacao","",cCU8Path +
"/formaTributacao"), "C", .T., @aIncons, .F. ) )
oModel:LoadValue( "MODEL_CU8", "CU8_VLRPGT", FTafGetVal( cCU8Path + "/vlrPago", "N", .F., @aIncons, .F. ) )
oModel:LoadValue( "MODEL_CU8", "CU8_VLRIRR", FTafGetVal( cCU8Path + "/vlrIRRF", "N", .F., @aIncons, .F. ) )
nCU8 ++
EndDo
//INICIO CU9 - <depPlano>

nCU9 := 1
cCU9Path := cCabec + "/infoPlanoSaudeColetivo/depPlano[" + cValToChar(nCU9) + "]"
//Deleta as linhas existentes se for alteracao
If nOpc == 4 .And. oDados:XPathHasNode( cCU9Path )
For nCU9 := 1 to oModel:GetModel( 'MODEL_CU9' ):Length()
oModel:GetModel( 'MODEL_CU9' ):GoLine(nCU9)
oModel:GetModel( 'MODEL_CU9' ):DeleteLine()
Next nCU9
EndIf
//Alimenta o modelo CU9
While oDados:XPathHasNode( cCabec + "/infoPlanoSaudeColetivo/depPlano[" + cValToChar(nCU9) + "]" )
cCU9Path := cCabec + "/infoPlanoSaudeColetivo/depPlano[" + cValToChar(nCU9) + "]"
If nOpc == 4 .Or. nCU9> 1
// Informa que a linha est vlida para que seja includa uma nova linha
oModel:GetModel( "MODEL_CU9" ):LVALID := .T.
// Inclui uma linha a cada volta do lao
oModel:GetModel( "MODEL_CU9" ):AddLine()
EndIf
oModel:LoadValue( "MODEL_CU9", "CU9_CPFDEP", FTafGetVal( cCU9Path + "/cpfDep", "C", .F., @aIncons, .F. ) )
oModel:LoadValue( "MODEL_CU9", "CU9_DTNASC", FTafGetVal( cCU9Path + "/dtNasctoDep", "D", .F., @aIncons, .F. ) )
oModel:LoadValue( "MODEL_CU9", "CU9_NOMDEP", FTafGetVal( cCU9Path + "/nomeDep", "C", .F., @aIncons, .F. ) )
oModel:LoadValue( "MODEL_CU9", "CU9_TPDEP", FGetIdInt("relDependencia","",cCU9Path + "/relDependencia"), "C", .T.,
@aIncons, .F. )
oModel:LoadValue( "MODEL_CU9", "CU9_VLRPGT", FTafGetVal( cCU9Path + "/vlrPagoDep", "N", .F., @aIncons, .F. ) )
nCU9 ++
EndDo
EndIf
FWFormCommit( oModel )
lRet := .T.
oModel:DeActivate()
EndIf
End Transaction

Verso 1.0

57

Integrao TAF
Ttulo do documento
S-1310 eSocial Mensal Outras Informaes Serv. Tomados (Cesso de Mo de
Obra)
Rotina:
Model MVC:
Validao
Gerao XML
Regras

TAFA271
MODEL_CMN; MODEL_CMO; MODEL_CMP; MODEL_CMQ;
TAF271VLD()
TAF271XML()
#
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42

TAG
evtFpServTomados
Verso
infEvento
idEvento
ideEvento
indRetificacao
nrRecibo
indApuracao
perApuracao
tpAmb
procEmi
indSegmento
verProc
ideEmpregador
tpInscricao
nrInscricao
infoServTomados
ideEstabelecimento
tpInscricao
nrInscricao
idePrestadorServicos
cnpjPrestador
vlrBruto
vlrBaseRetencao
vlrRetencao
vlrAdicional
vlrNaoRetido
nfsTerceiros
Serie
numDocto
dtEmissaoNF
indObra
nrCno
vlrBaseRetencao
vlrBruto
vlrRetencaoApurada
vlrRetencaoSubEmpreitada
vlrRetencao
vlrAdicional
itensNfs
nrItem
tpServico

Model
MODEL_CMN
MODEL_CMN
MODEL_CMO
MODEL_CMO
MODEL_CMP
MODEL_CMP
MODEL_CMP
MODEL_CMP
MODEL_CMP
MODEL_CMP
MODEL_CMQ
MODEL_CMQ
MODEL_CMQ
MODEL_CMQ
MODEL_CMQ
MODEL_CMQ
MODEL_CMQ
MODEL_CMQ
MODEL_CMQ
MODEL_CMQ
MODEL_CMQ
MODEL_CRO
MODEL_CRO

58

Campo

FGetIDInt()

CMN_INDAPU
CMN_PERAPU

CMO_TPINSC
CMO_INSCES
CMP_INSCCO
CMP_VLBRUT
CMP_BCRETE
CMP_VLRETE
CMP_VLADIC
CMP_VLNRET
CMQ_SERIE
CMQ_NUMDOC
CMQ_DTEMIS
CMQ_INDOBR
CMQ_NRCNO
CMQ_BCRETE
CMQ_VLBRUT
CMQ_VLAPUR
CMQ_VLSUBE
CMQ_VLRETE
CMQ_VLADIC
CRO_NRITEM
CRO_TPSERV

Verso 1.0

Integrao TAF

43
44
45
46
47
48
49
50
51
52
53
54

vlrBruto
vlrBaseRetencao
servPrestCondEspeciais
vlrServicos15
vlrServicos20
vlrServicos25
infoProcJudicial
nrProcJud
vlrNaoRetido
proprietarioCNO
tpInscProprietario
nrInscProprietario

MODEL_CRO
MODEL_CRO
MODEL_CMQ
MODEL_CMQ
MODEL_CMQ
MODEL_CMQ
MODEL_CMQ
MODEL_CMQ
MODEL_CMQ

CRO_VLRBRU
CRO_VBSRET
CMQ_VLSV15
CMQ_VLSV20
CMQ_VLSV25
CMQ_NRPROC
CMQ_VLNRET
CMQ_TPINSC
CMQ_INSCPR

Exemplo:
Aadd( aChave, { "C", "CMN_NOMEVE", "S1310", .T. } )
Aadd( aChave, { "C", "CMN_INDAPU", cInfEvento + "/ideEvento/indApuracao", .F. } )
Aadd( aChave, { "C", "CMN_PERAPU", cInfEvento + "/ideEvento/perApuracao", .F. } )
Begin Transaction
//
//Funo para validar se a operao desejada pode ser realizada
//
If FTafVldOpe( 'CMN', 2, @nOpc, cFilEv, @aIncons, aChave, @oModel, 'TAFA271', cCmpsNoUpd )
//
//Quando se tratar de uma Excluso direta, preciso apenas realizar
//o Commit(), no sendo necessria nenhuma manuteno nas informaes
//
If nOpc <> 5
oModel:LoadValue( "MODEL_CMN", "CMN_FILIAL", CMN->CMN_FILIAL )
oModel:LoadValue( 'MODEL_CMN', 'CMN_NOMEVE', "S1310" )
// CMO
nCMO := 1
cCMOPath := cInfEvento + "/infoServTomados/ideEstabelecimento[" + AllTrim(Str(nCMO)) +
"]"
If nOpc == 4 .And. oDados:XPathHasNode( cCMOPath )
For nJ := 1 to oModel:GetModel( 'MODEL_CMO' ):Length()
oModel:GetModel( 'MODEL_CMO' ):GoLine(nJ)
oModel:GetModel( 'MODEL_CMO' ):DeleteLine()
Next nJ
EndIf
While oDados:XPathHasNode( cCMOPath )
If nOpc == 4 .Or. nCMO > 1
// Informa que a linha est vlida para que seja includa uma nova linha
oModel:GetModel( "MODEL_CMO" ):LVALID := .T.
// Inclui uma linha a cada volta do lao
oModel:GetModel( "MODEL_CMO" ):AddLine()
EndIf
// Grava dados no model
oModel:LoadValue( "MODEL_CMO", "CMO_TPINSC", "1")
oModel:LoadValue( "MODEL_CMO", "CMO_INSCES", "123456789")
nCRO := 1
cCROPath := cCMQPath + "/itensNfs[" + AllTrim(Str(nCRO)) + "]"

Verso 1.0

59

Integrao TAF
Ttulo do documento
If nOpc == 4 .And. oDados:XPathHasNode( cCROPath )
For nJ := 1 to oModel:GetModel( 'MODEL_CRO' ):Length()
oModel:GetModel( 'MODEL_CRO' ):GoLine(nJ)
oModel:GetModel( 'MODEL_CRO' ):DeleteLine()
Next nJ
EndIf
While oDados:XPathHasNode( cCROPath

If nOpc == 4 .Or. nCRO > 1


// Informa que a linha est para que seja includa
uma nova linha
oModel:GetModel( "MODEL_CRO" ):LVALID := .T.
// Inclui uma linha a cada volta do lao
oModel:GetModel( "MODEL_CRO" ):AddLine()
EndIf
oModel:LoadValue( "MODEL_CRO", "CRO_NRITEM", FTafGetVal( cCROPath +
"/nrItem", "C", .F., @aIncons, .T. ) )
oModel:LoadValue( "MODEL_CRO", "CRO_TPSERV", FTafGetVal(
FGetIdInt( "tpServico", , cCROPath + "/tpServico" ), "C", .T., @aIncons, .T. ) )
oModel:LoadValue( "MODEL_CRO", "CRO_VLRBRU", FTafGetVal(
cCROPath + "/vlrBruto", "N", .F., @aIncons, .T. ) )
oModel:LoadValue( "MODEL_CRO", "CRO_VBSRET", FTafGetVal(
cCROPath + "/vlrBaseRetencao", "N", .F., @aIncons, .T. ) )
nCRO++
cCROPath := cCMQPath + "/itensNfs[" + AllTrim(Str(nCRO))
+ "]"

EndDo // Fim - CRO


// CMP
nCMP := 1
cCMPPath := cCMOPath + "/idePrestadorServicos[" + AllTrim(Str(nCMP)) + "]"
If nOpc == 4 .And. oDados:XPathHasNode( cCMPPath )
For nJ := 1 to oModel:GetModel( 'MODEL_CMP' ):Length()
oModel:GetModel( 'MODEL_CMP' ):GoLine(nJ)
oModel:GetModel( 'MODEL_CMP' ):DeleteLine()
Next nJ
EndIf
While oDados:XPathHasNode( cCMPPath

If nOpc == 4 .Or. nCMP > 1


// Informa que a linha est para que seja includa uma nova
linha
oModel:GetModel( "MODEL_CMP" ):LVALID := .T.
// Inclui uma linha a cada volta do lao
oModel:GetModel( "MODEL_CMP" ):AddLine()
EndIf
oModel:LoadValue( "MODEL_CMP", "CMP_VLADIC", "350")
oModel:LoadValue( "MODEL_CMP", "CMP_VLNRET", "200")
// CMQ
nCMQ := 1
cCMQPath := cCMPPath + "/nfsTerceiros[" + AllTrim(Str(nCMQ)) + "]"
If nOpc == 4 .And. oDados:XPathHasNode( cCMQPath )
For nJ := 1 to oModel:GetModel( 'MODEL_CMQ' ):Length()
oModel:GetModel( 'MODEL_CMQ' ):GoLine(nJ)
oModel:GetModel( 'MODEL_CMQ' ):DeleteLine()
Next nJ
EndIf
While oDados:XPathHasNode( cCMQPath

If nOpc == 4 .Or. nCMQ > 1


// Informa que a linha est para que seja includa uma
nova linha
oModel:GetModel( "MODEL_CMQ" ):LVALID := .T.

60

Verso 1.0

Integrao TAF

// Inclui uma linha a cada volta do lao


oModel:GetModel( "MODEL_CMQ" ):AddLine()
EndIf
oModel:LoadValue( "MODEL_CMQ", "CMQ_VLBRUT", "350")
oModel:LoadValue( "MODEL_CMQ", "CMQ_VLAPUR", "200")
If oDados:XPathHasNode( cCMQPath + "/servPrestCondEspeciais" )
oModel:LoadValue( "MODEL_CMQ", "CMQ_VLSV15", 100)
oModel:LoadValue( "MODEL_CMQ", "CMQ_VLSV20", 100)
oModel:LoadValue( "MODEL_CMQ", "CMQ_VLSV25", 100)
EndIf
If oDados:XPathHasNode( cCMQPath + "/infoProcJudicial" )
oModel:LoadValue( "MODEL_CMQ", "CMQ_VLNRET", 100)
EndIf
If oDados:XPathHasNode( cCMQPath + "/proprietarioCNO" )
oModel:LoadValue( "MODEL_CMQ", "CMQ_TPINSC",1)
oModel:LoadValue( "MODEL_CMQ", "CMQ_INSCPR",
5681000114)
EndIf
nCMQ++
cCMQPath := cCMPPath + "/nfsTerceiros[" + AllTrim(Str(nCMQ)) +
"]"
EndDo // Fim - CMQ
nCMP++
cCMPPath := cCMOPath + "/idePrestadorServicos[" + AllTrim(Str(nCMP)) +
"]"
EndDo // Fim - CMP
nCMO++
cCMOPath := cInfEvento + "/infoServTomados/ideEstabelecimento[" +
AllTrim(Str(nCMO)) + "]"
EndDo // Fim - CMO
EndIf
//
//Efetiva a operacao desejada
//
FWFormCommit( oModel )
lRet := .T.
oModel:DeActivate()
EndIf
End Transaction

Verso 1.0

61

Integrao TAF
Ttulo do documento
S-1320 eSocial Mensal Outras Informaes Serv. Prestados (Cesso de Mo de
Obra)
Rotina:
Model MVC:
Validao
Gerao XML
Regras

TAFA288
MODEL_CMN; MODEL_CMO; MODEL_CMP; MODEL_CMQ;
TAF288VLD()
TAF288XML()
#
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42

TAG
evtFpServPrestados
Verso
infEvento
idEvento
ideEvento
indRetificacao
nrRecibo
indApuracao
perApuracao
tpAmb
procEmi
indSegmento
verProc
ideEmpregador
tpInscricao
nrInscricao
infoServPrestados
ideEstabPrestador
tpInscricao
nrInscricao
ideContratante
tpInscContratante
nrInscContratante
vlrBruto
vlrServicos
vlrBaseRetencao
vlrRetencao
vlrAdicional
vlrNaoRetido
nfsEmitidas
Serie
numDocto
dtEmissaoNF
indObra
nrCno
vlrBruto
vlrServicos
vlrDeducoes
vlrBaseRetencao
vlrRetencaoApurada
vlrRetencaoSubEmpreitada
vlrRetencao

Model
MODEL_CMN
MODEL_CMN
MODEL_CMO
MODEL_CMO
MODEL_CMP
MODEL_CMP
MODEL_CMP
MODEL_CMP
MODEL_CMP
MODEL_CMP
MODEL_CMP
MODEL_CMP
MODEL_CMQ
MODEL_CMQ
MODEL_CMQ
MODEL_CMQ
MODEL_CMQ
MODEL_CMQ
MODEL_CMQ
MODEL_CMQ
MODEL_CMQ
MODEL_CMQ
MODEL_CMQ
MODEL_CMQ

62

Campo

FGetIDInt()

CMN_INDAPU
CMN_PERAPU

CMO_TPINSC
CMO_INSCES
CMP_TPINSC
CMP_INSCCO
CMP_VLBRUT
CMP_VLSERV
CMP_BCRETE
CMP_VLRETE
CMP_VLADIC
CMP_VLNRET
CMQ_SERIE
CMQ_NUMDOC
CMQ_DTEMIS
CMQ_INDOBR
CMQ_NRCNO
CMQ_VLBRUT
CMQ_VLSERV
CMQ_VLDEDU
CMQ_BCRETE
CMQ_VLAPUR
CMQ_VLSUBE
CMQ_VLRETE

Verso 1.0

Integrao TAF

43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61

vlrAdicional
itensNfs
nrItem
tpServico
vlrBruto
vlrBaseRetencao
servPrestCondEspeciais
vlrServicos15
vlrServicos20
vlrServicos25
infoProcJudicial
nrProcJud
vlrNaoRetido
servSubempreitados
cnpjSubempreiteiro
vlrRetidoSubempreitada
proprietarioCNO
tpInscProprietario
nrInscProprietario

MODEL_CMQ
MODEL_CRO
MODEL_CRO
MODEL_CRO
MODEL_CRO
MODEL_CMQ
MODEL_CMQ
MODEL_CMQ
MODEL_CMQ
MODEL_CMQ
MODEL_CMQ
MODEL_CMQ
MODEL_CMQ
MODEL_CMQ

CMQ_VLADIC
CRO_NRITEM
CRO_TPSERV
CRO_VLRBRU
CRO_VBSRET
CMQ_VLSV15
CMQ_VLSV20
CMQ_VLSV25
CMQ_NRPROC
CMQ_VLNRET
CMQ_CNPJSU
CMQ_VLRSUB
CMQ_TPINSC
CMQ_INSCPR

Exemplo:
Aadd( aChave, { "C", "CMN_NOMEVE", "S1320", .T. } )
Aadd( aChave, { "C", "CMN_INDAPU", "1", .T. } )
Aadd( aChave, { "C", "CMN_PERAPU", "122013", .T. } )
Begin Transaction
//
//Funo para validar se a operao desejada pode ser realizada
//
If FTafVldOpe( 'CMN', 2, @nOpc, cFilEv, @aIncons, aChave, @oModel, 'TAFA288', cCmpsNoUpd )
//
//Quando se tratar de uma Excluso direta, preciso apenas realizar
//o Commit(), no sendo necessria nenhuma manuteno nas informaes
//
If nOpc <> 5
oModel:LoadValue( "MODEL_CMN", "CMN_FILIAL", CMN->CMN_FILIAL )
oModel:LoadValue( 'MODEL_CMN', 'CMN_NOMEVE', "S1320" )
// CMO
nCMO := 1
cCMOPath := cInfEvento + "/infoServPrestados/ideEstabPrestador[" + AllTrim(Str(nCMO)) +
"]"
If nOpc == 4 .And. oDados:XPathHasNode( cCMOPath )
For nJ := 1 to oModel:GetModel( 'MODEL_CMO' ):Length()
oModel:GetModel( 'MODEL_CMO' ):GoLine(nJ)
oModel:GetModel( 'MODEL_CMO' ):DeleteLine()
Next nJ
EndIf
While oDados:XPathHasNode( cCMOPath )
If nOpc == 4 .Or. nCMO > 1
// Informa que a linha est vlida para que seja includa uma nova linha
oModel:GetModel( "MODEL_CMO" ):LVALID := .T.

Verso 1.0

63

Integrao TAF
Ttulo do documento
// Inclui uma linha a cada volta do lao
oModel:GetModel( "MODEL_CMO" ):AddLine()
EndIf
// Grava dados no model
oModel:LoadValue( "MODEL_CMO", "CMO_TPINSC", "1")
oModel:LoadValue( "MODEL_CMO", "CMO_INSCES", "102505781460")
// CMP
nCMP := 1
cCMPPath := cCMOPath + "/ideContratante[" + AllTrim(Str(nCMP)) + "]"
If nOpc == 4 .And. oDados:XPathHasNode( cCMPPath )
For nJ := 1 to oModel:GetModel( 'MODEL_CMP' ):Length()
oModel:GetModel( 'MODEL_CMP' ):GoLine(nJ)
oModel:GetModel( 'MODEL_CMP' ):DeleteLine()
Next nJ
EndIf
While oDados:XPathHasNode( cCMPPath

If nOpc == 4 .Or. nCMP > 1


// Informa que a linha est para que seja includa uma nova
linha
oModel:GetModel( "MODEL_CMP" ):LVALID := .T.
// Inclui uma linha a cada volta do lao
oModel:GetModel( "MODEL_CMP" ):AddLine()
EndIf
oModel:LoadValue( "MODEL_CMP", "CMP_VLADIC", "300")
oModel:LoadValue( "MODEL_CMP", "CMP_VLNRET", "500")
// CMQ
nCMQ := 1
cCMQPath := cCMPPath + "/nfsEmitidas[" + AllTrim(Str(nCMQ)) + "]"
If nOpc == 4 .And. oDados:XPathHasNode( cCMQPath )
For nJ := 1 to oModel:GetModel( 'MODEL_CMQ' ):Length()
oModel:GetModel( 'MODEL_CMQ' ):GoLine(nJ)
oModel:GetModel( 'MODEL_CMQ' ):DeleteLine()
Next nJ
EndIf
While oDados:XPathHasNode( cCMQPath

If nOpc == 4 .Or. nCMQ > 1


// Informa que a linha est para que seja includa uma
nova linha
oModel:GetModel( "MODEL_CMQ" ):LVALID := .T.
// Inclui uma linha a cada volta do lao
oModel:GetModel( "MODEL_CMQ" ):AddLine()
EndIf
oModel:LoadValue( "MODEL_CMQ", "CMQ_VLRETE", "250")
oModel:LoadValue( "MODEL_CMQ", "CMQ_VLADIC", "400")
If oDados:XPathHasNode( cCMQPath + "/servPrestCondEspeciais" )
oModel:LoadValue( "MODEL_CMQ", "CMQ_VLSV15", 200)
oModel:LoadValue( "MODEL_CMQ", "CMQ_VLSV20", 200)
oModel:LoadValue( "MODEL_CMQ", "CMQ_VLSV25", 200)
EndIf
If oDados:XPathHasNode( cCMQPath + "/infoProcJudicial" )
oModel:LoadValue( "MODEL_CMQ", "CMQ_VLNRET", 250)
EndIf
If oDados:XPathHasNode( cCMQPath + "/servSubempreitados" )
oModel:LoadValue( "MODEL_CMQ", "CMQ_TPINSC", 1)
oModel:LoadValue( "MODEL_CMQ", "CMQ_INSCPR",
5544778800112)

64

Verso 1.0

Integrao TAF

EndIf
If oDados:XPathHasNode( cCMQPath + "/proprietarioCNO" )
oModel:LoadValue( "MODEL_CMQ", "CMQ_TPINSC", 1)
oModel:LoadValue( "MODEL_CMQ", "CMQ_INSCPR",
87887782320)
EndIf
nCMQ++
cCMQPath := cCMPPath + "/nfsEmitidas[" + AllTrim(Str(nCMQ)) +
"]"
EndDo // Fim - CMQ
nCMP++
cCMPPath := cCMOPath + "/ideContratante[" + AllTrim(Str(nCMP)) + "]"
EndDo // Fim - CMP
nCMO++
cCMOPath := cInfEvento + "/infoServPrestados/ideEstabPrestador[" +
AllTrim(Str(nCMO)) + "]"
EndDo // Fim - CMO
EndIf
FWFormCommit( oModel )
lRet := .T.
oModel:DeActivate()
EndIf
End Transaction

Verso 1.0

65

Integrao TAF
Ttulo do documento
S-1330 eSocial Mensal Outras Informaes Serv. Tomados de Cooperativa de
Trabalho
Rotina:
Model MVC:
Validao
Gerao XML
Regras

TAFA289
MODEL_CMN; MODEL_CMO; MODEL_CMQ
TAF289VLD()
TAF289XML()
#
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42

TAG
evtFpServTomadosCoop
Verso
infEvento
idEvento
ideEvento
indRetificacao
nrRecibo
indApuracao
perApuracao
tpAmb
procEmi
indSegmento
verProc
ideEmpregador
tpInscricao
nrInscricao
infoServTomados
ideEstabelecimento
tpInscricao
nrInscricao
nfsTerceiros
cnpjCooperativa
Serie
numDocto
dtEmissaoNF
dtPagtoNF
indObra
nrCno
vlrBruto
vlrMatEquip
vlrServicos
vlrDeducoes
vlrBaseCoop
servCoopCondEspeciais
vlrServicos15
vlrServicos20
vlrServicos25
servPrestAtivConcomitante
vlrBaseCoop
vlrBaseCoop15
vlrBaseCoop20
vlrBaseCoop25

Model
-

Campo

MODEL_CMN

CMN_INDAPU

MODEL_CMN

CMN_PERAPU

FGetIDInt()

MODEL_CMO

CMO_TPINSC

MODEL_CMO

CMO_INSCES

MODEL_CMQ

CMQ_CNPJCO

MODEL_CMQ

CMQ_SERIE

MODEL_CMQ

CMQ_NUMDOC

MODEL_CMQ

CMQ_DTEMIS

MODEL_CMQ

CMQ_DTPGTO

MODEL_CMQ

CMQ_INDOBR

MODEL_CMQ

CMQ_NRCNO

MODEL_CMQ

CMQ_VLBRUT

MODEL_CMQ

CMQ_VLMATE

MODEL_CMQ

CMQ_VLSERV

MODEL_CMQ

CMQ_VLDEDU

MODEL_CMQ

CMQ_BCCOOP

MODEL_CMQ

CMQ_VLSV15

MODEL_CMQ

CMQ_VLSV20

MODEL_CMQ

CMQ_VLSV25

MODEL_CMQ

CMQ_BCCONC

MODEL_CMQ

CMQ_BCCO15

MODEL_CMQ

CMQ_BCCO20

MODEL_CMQ

CMQ_BCCO25

66

Verso 1.0

Integrao TAF

43
44
45
46
47
48
49
50
51

proprietarioCNO
tpInscProprietario
nrInscProprietario
totBaseCoop
indIncidencia
vlrBaseCoop
vlrBaseCoop15
vlrBaseCoop20
vlrBaseCoop25

MODEL_CMQ

CMQ_TPINSC

MODEL_CMQ

CMQ_INSCPR

MODEL_CMO

CMO_INDINC

MODEL_CMO

CMO_BCTOT

MODEL_CMO

CMO_BCCP15

MODEL_CMO

CMO_BCCP20

MODEL_CMO

CMO_BCCP25

Exemplo:
cXml := xFunLerXML()
oDados := TXmlManager():New()
oDados:Parse(cXml)
Aadd( aChave, { "C", "CMN_NOMEVE", "S1330", .T. } )
Aadd( aChave, { "C", "CMN_INDAPU", "1", .T. } )
Aadd( aChave, { "C", "CMN_PERAPU", "102014", .T. } )
Begin Transaction
If FTafVldOpe( 'CMN', 2, @nOpc, cFilEv, @aIncons, aChave, @oModel, 'TAFA289', cCmpsNoUpd )
If nOpc <> 5
oModel:LoadValue( "MODEL_CMN", "CMN_FILIAL", CMN->CMN_FILIAL )
oModel:LoadValue( 'MODEL_CMN', 'CMN_NOMEVE', "S1330" )
// CMO
nCMO := 1
cCMOPath := cInfEvento + "/infoServTomados/ideEstabelecimento[" + AllTrim(Str(nCMO)) +
"]"
If nOpc == 4 .And. oDados:XPathHasNode( cCMOPath )
For nJ := 1 to oModel:GetModel( 'MODEL_CMO' ):Length()
oModel:GetModel( 'MODEL_CMO' ):GoLine(nJ)
oModel:GetModel( 'MODEL_CMO' ):DeleteLine()
Next nJ
EndIf
While oDados:XPathHasNode( cCMOPath )
If nOpc == 4 .Or. nCMO > 1
// Informa que a linha est vlida para que seja includa uma nova linha
oModel:GetModel( "MODEL_CMO" ):LVALID := .T.
// Inclui uma linha a cada volta do lao
oModel:GetModel( "MODEL_CMO" ):AddLine()
EndIf
// Grava dados no model
oModel:LoadValue( "MODEL_CMO", "CMO_INDINC", "1 ")
// CMQ
nCMQ := 1
cCMQPath := cCMOPath + "/nfsTerceiros[" + AllTrim(Str(nCMQ)) + "]"
If nOpc == 4 .And. oDados:XPathHasNode( cCMQPath )
For nJ := 1 to oModel:GetModel( 'MODEL_CMQ' ):Length()
oModel:GetModel( 'MODEL_CMQ' ):GoLine(nJ)
oModel:GetModel( 'MODEL_CMQ' ):DeleteLine()
Next nJ
EndIf
While oDados:XPathHasNode( cCMQPath

Verso 1.0

67

Integrao TAF
Ttulo do documento
If nOpc == 4 .Or. nCMQ > 1
// Informa que a linha est para que seja includa uma nova
linha
oModel:GetModel( "MODEL_CMQ" ):LVALID := .T.
// Inclui uma linha a cada volta do lao
oModel:GetModel( "MODEL_CMQ" ):AddLine()
EndIf
oModel:LoadValue( "MODEL_CMQ", "CMQ_NUMDOC", "1504")
nCMQ++
cCMQPath := cCMOPath + "/nfsTerceiros[" + AllTrim(Str(nCMQ)) + "]"
EndDo // Fim - CMQ
nCMO++
cCMOPath := cInfEvento + "/infoServTomados/ideEstabelecimento[" +
AllTrim(Str(nCMO)) + "]"
EndDo // Fim - CMO
EndIf
//
//Efetiva a operao desejada
//
FWFormCommit( oModel )
lRet := .T.
oModel:DeActivate()
EndIf
End Transaction

68

Verso 1.0

Integrao TAF

S-1340 eSocial Mensal Outras Informaes Serv. Prestados pela Cooperativa de


Trabalho
Rotina:
Model MVC:
Validao
Gerao XML
Regras

TAFA290
MODEL_CMN; MODEL_CMO; MODEL_CMP; MODEL_CMQ
TAF290VLD()
TAF290XML()
#
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44

TAG
evtFpServPrestadoCoop
Verso
infEvento
idEvento
ideEvento
indRetificacao
nrRecibo
indApuracao
perApuracao
tpAmb
procEmi
indSegmento
verProc
ideEmpregador
tpInscricao
nrInscricao
infoServPrestados
ideEstabPrestador
tpInscricao
nrInscricao
ideContratante
tpInscContratante
nrInscContratante
vlrBruto
vlrBaseCoop
nfsEmitidas
Serie
numDocto
dtEmissaoNF
dtPagtoNF
indObra
nrCno
vlrBruto
vlrMatEquip
vlrServicos
vlrDeducoes
vlrBaseCoop
servCoopCondEspeciais
vlrServicos15
vlrServicos20
vlrServicos25
proprietarioCNO
tpInscProprietario
nrInscProprietario

Verso 1.0

Model
MODEL_CMN
MODEL_CMN
MODEL_CMO
MODEL_CMO
MODEL_CMP
MODEL_CMP
MODEL_CMP
MODEL_CMP
MODEL_CMQ
MODEL_CMQ
MODEL_CMQ
MODEL_CMQ
MODEL_CMQ
MODEL_CMQ
MODEL_CMQ
MODEL_CMQ
MODEL_CMQ
MODEL_CMQ
MODEL_CMQ
MODEL_CMQ
MODEL_CMQ
MODEL_CMQ
MODEL_CMQ
MODEL_CMQ

69

Campo

CMN_INDAPU
CMN_PERAPU

CMO_TPINSC
CMO_INSCES
CMP_TPINSC
CMP_INSCCO
CMP_VLBRUT
CMP_BCCOOP
CMQ_SERIE
CMQ_NUMDOC
CMQ_DTEMIS
CMQ_DTPGTO
CMQ_INDOBR
CMQ_NRCNO
CMQ_VLBRUT
CMQ_VLMATE
CMQ_VLSERV
CMQ_VLDEDU
CMQ_BCCOOP
CMQ_VLSV15
CMQ_VLSV20
CMQ_VLSV25
CMQ_TPINSC
CMQ_INSCPR

FGetIDInt()

Integrao TAF
Ttulo do documento
Exemplo:
cXml := xFunLerXML()
oDados := TXmlManager():New()
oDados:Parse(cXml)
Aadd( aChave, { "C", "CMN_NOMEVE", "S1340", .T. } )
Aadd( aChave, { "C", "CMN_INDAPU", "1, .T. } )
Aadd( aChave, { "C", "CMN_PERAPU", "102013", .T. } )
Begin Transaction
//
//Funo para validar se a operao desejada pode ser realizada
//
If FTafVldOpe( 'CMN', 2, @nOpc, cFilEv, @aIncons, aChave, @oModel, 'TAFA290', cCmpsNoUpd )
//
//Quando se tratar de uma Excluso direta, preciso apenas realizar
//o Commit(), no sendo necessria nenhuma manuteno nas informaes
//
If nOpc <> 5
oModel:LoadValue( "MODEL_CMN", "CMN_FILIAL", CMN->CMN_FILIAL )
oModel:LoadValue( 'MODEL_CMN', 'CMN_NOMEVE', "S1340" )
// CMO
nCMO := 1
cCMOPath := cInfEvento + "/infoServPrestados/ideEstabPrestador[" + AllTrim(Str(nCMO)) +
"]"
If nOpc == 4 .And. oDados:XPathHasNode( cCMOPath )
For nJ := 1 to oModel:GetModel( 'MODEL_CMO' ):Length()
oModel:GetModel( 'MODEL_CMO' ):GoLine(nJ)
oModel:GetModel( 'MODEL_CMO' ):DeleteLine()
Next nJ
EndIf
While oDados:XPathHasNode( cCMOPath )
If nOpc == 4 .Or. nCMO > 1
// Informa que a linha est vlida para que seja includa uma nova linha
oModel:GetModel( "MODEL_CMO" ):LVALID := .T.
// Inclui uma linha a cada volta do lao
oModel:GetModel( "MODEL_CMO" ):AddLine()
EndIf
// Grava dados no model
oModel:LoadValue( "MODEL_CMO", "CMO_TPINSC")
oModel:LoadValue( "MODEL_CMO", "CMO_INSCES",

"665487991")

// CMP
nCMP := 1
cCMPPath := cCMOPath + "/ideContratante[" + AllTrim(Str(nCMP)) + "]"
If nOpc == 4 .And. oDados:XPathHasNode( cCMPPath )
For nJ := 1 to oModel:GetModel( 'MODEL_CMP' ):Length()
oModel:GetModel( 'MODEL_CMP' ):GoLine(nJ)
oModel:GetModel( 'MODEL_CMP' ):DeleteLine()
Next nJ
EndIf
While oDados:XPathHasNode( cCMPPath

If nOpc == 4 .Or. nCMP > 1


// Informa que a linha est para que seja includa uma nova
linha
oModel:GetModel( "MODEL_CMP" ):LVALID := .T.
// Inclui uma linha a cada volta do lao

70

Verso 1.0

Integrao TAF

oModel:GetModel( "MODEL_CMP" ):AddLine()


EndIf
oModel:LoadValue( "MODEL_CMP", "CMP_BCCOOP", "500")
// CMQ
nCMQ := 1
cCMQPath := cCMPPath + "/nfsEmitidas[" + AllTrim(Str(nCMQ)) + "]"
If nOpc == 4 .And. oDados:XPathHasNode( cCMQPath )
For nJ := 1 to oModel:GetModel( 'MODEL_CMQ' ):Length()
oModel:GetModel( 'MODEL_CMQ' ):GoLine(nJ)
oModel:GetModel( 'MODEL_CMQ' ):DeleteLine()
Next nJ
EndIf
While oDados:XPathHasNode( cCMQPath

If nOpc == 4 .Or. nCMQ > 1


// Informa que a linha est para que seja includa uma
nova linha
oModel:GetModel( "MODEL_CMQ" ):LVALID := .T.
// Inclui uma linha a cada volta do lao
oModel:GetModel( "MODEL_CMQ" ):AddLine()
EndIf
oModel:LoadValue( "MODEL_CMQ", "CMQ_BCCOOP",

"305")

If oDados:XPathHasNode( cCMQPath + "/servCoopCondEspeciais" )


oModel:LoadValue( "MODEL_CMQ", "CMQ_VLSV25", 200)
EndIf
nCMQ++
cCMQPath := cCMPPath + "/nfsEmitidas[" + AllTrim(Str(nCMQ)) +
"]"
EndDo // Fim - CMQ
nCMP++
cCMPPath := cCMOPath + "/ideContratante[" + AllTrim(Str(nCMP)) + "]"
EndDo // Fim - CMP
nCMO++
cCMOPath := cInfEvento + "/infoServPrestados/ideEstabPrestador[" +
AllTrim(Str(nCMO)) + "]"
EndDo // Fim - CMO
EndIf
//
//Efetiva a operao desejada
//
FWFormCommit( oModel )
lRet := .T.
oModel:DeActivate()
EndIf
End Transaction

Verso 1.0

71

Integrao TAF
Ttulo do documento
S-1350 eSocial Mensal Outras Informaes Aquisio de Produo
Rotina:
Model MVC:
Validao
Gerao XML
Regras

TAFA272
MODEL_CMR
TAF272VLD()
TAF272XML()
#
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40

TAG
evtFpAquisProducao
Verso
infEvento
idEvento
ideEvento
indRetificacao
nrRecibo
indApuracao
perApuracao
tpAmb
procEmi
indSegmento
verProc
ideEmpregador
tpInscricao
nrInscricao
infoAquisProducao
ideEstabAdquirente
tpInscricao
nrInscricao
tipoAquisicao
indAquisicao
vlrTotalAquisicao
ideProdutor
tpInscricao
nrInscricao
vlrBruto
vlrContribDescPR
vlrGilratDescPR
vlrSenarDescPR
notasFiscais
Serie
numDocto
dtEmissaoNF
vlrBruto
vlrContribDescPR
vlrGilratDescPR
vlrSenarDescPR
infoProcJudicial
nrProcJud

Model
MODEL_CMR
MODEL_CMR
MODEL_CMS
MODEL_CMS
MODEL_CMT
MODEL_CMT
MODEL_CMU
MODEL_CMU
MODEL_CMU
MODEL_CMU
MODEL_CMU
MODEL_CMU
MODEL_CMV
MODEL_CMV
MODEL_CMV
MODEL_CMV
MODEL_CMV
MODEL_CMV
MODEL_CMV
MODEL_CMU

72

Campo

FGetIDInt()

CMR_INDAPU
CMR_PERAPU

CMS_TPINSC
CMS_INSCES
CMT_INDAQU
CMT_VLAQUI
CMU_TPINSC
CMU_INSCPR
CMU_VLBRUT
CMU_VLCONT
CMU_VLGILR
CMU_VLSENA
CMV_SERIE
CMV_NUMDOC
CMV_DTEMIS
CMV_VLBRUT
CMV_VLCONT
CMV_VLGILR
CMV_VLSENA
CMU_NRPROC

Verso 1.0

Integrao TAF

Exemplo:
cXml := xFunLerXML()
oDados := TXmlManager():New()
oDados:Parse(cXml)
Aadd( aChave, { "C", "CMX_INDAPU", "1 ", .F. } )
Aadd( aChave, { "C", "CMX_PERAPU", "122013", .F. } )
Begin Transaction
//
//Funo para validar se a operao desejada pode ser realizada
//
If FTafVldOpe( 'CMR', 2, @nOpc, cFilEv, @aIncons, aChave, @oModel, 'TAFA272', cCmpsNoUpd )
If nOpc <> 5
oModel:LoadValue( "MODEL_CMR", "CMR_FILIAL", CMR->CMR_FILIAL )
//
//INICIO CMS - <ideEstabAdquirente>
//
nCMS := 1
cCMSPath := cInfEvento + "/infoAquisProducao/ideEstabAdquirente[" + AllTrim(Str(nCMS))
+ "]"
//Deleta as linhas existentes se for alterao
If nOpc == 4 .And. oDados:XPathHasNode( cCMSPath )
For nJ := 1 to oModel:GetModel( 'MODEL_CMS' ):Length()
oModel:GetModel( 'MODEL_CMS' ):GoLine(nJ)
oModel:GetModel( 'MODEL_CMS' ):DeleteLine()
Next nJ
EndIf
//Alimenta o modelo CMS
While oDados:XPathHasNode( cCMSPath )
If nOpc == 4 .Or. nCMS > 1
// Informa que a linha est vlida para que seja includa uma nova linha
oModel:GetModel( "MODEL_CMS" ):LVALID := .T.
// Inclui uma linha a cada volta do lao
oModel:GetModel( "MODEL_CMS" ):AddLine()
EndIf
// Grava dados no model
oModel:LoadValue( "MODEL_CMS", "CMS_TPINSC", "1")
oModel:LoadValue( "MODEL_CMS", "CMS_INSCES", "1120150478")
//
//INICIO CMT - <tipoAquisicao>
//
nCMT := 1
cCMTPath := cCMSPath + "/tipoAquisicao[" + AllTrim(Str(nCMT)) + "]"
//Deleta as linhas existentes se for alteraca
If nOpc == 4 .And. oDados:XPathHasNode( cCMTPath )
For nJ := 1 to oModel:GetModel( 'MODEL_CMT' ):Length()
oModel:GetModel( 'MODEL_CMT' ):GoLine(nJ)
oModel:GetModel( 'MODEL_CMT' ):DeleteLine()
Next nJ
EndIf
//Alimenta o modelo CMT
While oDados:XPathHasNode( cCMTPath )
If nOpc == 4 .Or. nCMT > 1
// Informa que a linha est vlida para que seja includa uma
nova linha

Verso 1.0

73

Integrao TAF
Ttulo do documento
oModel:GetModel( "MODEL_CMT" ):LVALID := .T.
// Inclui uma linha a cada volta do lao
oModel:GetModel( "MODEL_CMT" ):AddLine()
EndIf
// Grava dados no model
oModel:LoadValue( "MODEL_CMT", "CMT_VLAQUI",

"1200")

//
//INICIO CMU - <ideProdutor>
//
nCMU := 1
cCMUPath := cCMTPath + "/ideProdutor[" + AllTrim(Str(nCMU)) + "]"
//Deleta as linhas existentes se for alteraca
If nOpc == 4 .And. oDados:XPathHasNode( cCMUPath )
For nJ := 1 to oModel:GetModel( 'MODEL_CMU' ):Length()
oModel:GetModel( 'MODEL_CMU' ):GoLine(nJ)
oModel:GetModel( 'MODEL_CMU' ):DeleteLine()
Next nJ
EndIf
While oDados:XPathHasNode( cCMUPath )
If nOpc == 4 .Or. nCMU > 1
// Informa que a linha est vlida para que seja includa
uma nova linha
oModel:GetModel( "MODEL_CMU" ):LVALID := .T.
// Inclui uma linha a cada volta do lao
oModel:GetModel( "MODEL_CMU" ):AddLine()
EndIf
// Grava dados no model
oModel:LoadValue( "MODEL_CMU", "CMU_VLSENA", "1250")
//
//INICIO CMV - <notasFiscais>
//
nCMV := 1
cCMVPath := cCMUPath + "/notasFiscais[" + AllTrim(Str(nCMV)) +
"]"
//Deleta as linhas existentes se for alterao
If nOpc == 4 .And. oDados:XPathHasNode( cCMVPath )
For nJ := 1 to oModel:GetModel( 'MODEL_CMV' ):Length()
oModel:GetModel( 'MODEL_CMV' ):GoLine(nJ)
oModel:GetModel( 'MODEL_CMV' ):DeleteLine()
Next nJ
EndIf
While oDados:XPathHasNode( cCMVPath )
If nOpc == 4 .Or. nCMV > 1
// Informa que a linha est vlida para que seja
includa uma nova linha
oModel:GetModel( "MODEL_CMV" ):LVALID := .T.
// Inclui uma linha a cada volta do lao
oModel:GetModel( "MODEL_CMV" ):AddLine()
EndIf
// Grava dados no model
oModel:LoadValue( "MODEL_CMV", "CMV_VLSENA",
nCMV++
cCMVPath := cCMUPath + "/notasFiscais[" +
AllTrim(Str(nCMV)) + "]"
EndDo

74

Verso 1.0

"500")

Integrao TAF

//
//FIM CMV
//
If oDados:XPathHasNode( cCMUPath + "/infoProcJudicial" )
oModel:LoadValue( "MODEL_CMU", "CMU_NRPROC","334477")
EndIf
nCMU++
cCMUPath := cCMTPath + "/ideProdutor[" + AllTrim(Str(nCMU)) +
"]"
EndDo
//
//FIM CMU
//
nCMT++
cCMTPath := cCMSPath + "/tipoAquisicao[" + AllTrim(Str(nCMT)) + "]"
EndDo
//
//FIM CMT
//
nCMS++
cCMSPath := cInfEvento + "/infoAquisProducao/ideEstabAdquirente[" + AllTrim(Str(nCMS)) + "]"
EndDo
//
//FIM CMS
//
EndIf
//
//Efetiva a operao desejada
//
FWFormCommit( oModel )
lRet := .T.
oModel:DeActivate()
EndIf
End Transaction

Verso 1.0

75

Integrao TAF
Ttulo do documento
S-1360 eSocial Mensal Outras Informaes Comercializao da Produo
Rotina:
Model MVC:
Validao
Gerao XML
Regras

TAFA252
MODEL_C8Q; MODEL_C9C; MODEL_C9D; MODEL_C9E
TAF252VLD()
TAF252XML()
#
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28

TAG
evtFpComercProducao
Verso
infEvento
idEvento
ideEvento
indRetificacao
nrRecibo
indApuracao
perApuracao
tpAmb
procEmi
indSegmento
verProc
ideEmpregador
tpInscricao
nrInscricao
infoComercProducao
ideEstabelecimento
tpInscricao
nrInscricao
tipoComercializacao
indComercializacao
vlrTotalComercializacao
ideAdquirente
tpInscricao
nrInscricao
vlrComercializacao
vlrRetidoProdRural

Model
MODEL_C8Q
MODEL_C8Q
MODEL_C9C
MODEL_C9D
MODEL_C9D
MODEL_C9E
MODEL_C9E
MODEL_C9E
MODEL_C9E

Campo

FGetIDInt()

C8Q_INDAPU
C8Q_PERAPU

C9C_ESTABE
-

tpEstabelecimento

C9D_INDCOM
C9D_VLTCOM
C9E_TPINCA
C9E_NRINCA
C9E_VBCPRD
C9E_VRETPR

Exemplo:
cXml := xFunLerXML()
oDados := TXmlManager():New()
oDados:Parse(cXml)
Aadd( aChave, { "C", "C8Q_INDAPU","1", .T. } )
Aadd( aChave, { "C", "C8Q_PERAPU","102013", .T. } )
Begin Transaction
If FTafVldOpe( "C8Q", 2, @nOpc, cFilEv, @aIncons, aChave, @oModel, "TAFA252", cCmpsNoUpd )
oModel:LoadValue( "MODEL_C8Q", "C8Q_FILIAL", C8Q->C8Q_FILIAL )

76

Verso 1.0

Integrao TAF

If nOpc == 4
For nJ := 1 to oModel:GetModel( 'MODEL_C9C' ):Length()
oModel:GetModel( 'MODEL_C9C' ):GoLine(nJ)
oModel:GetModel( 'MODEL_C9C' ):DeleteLine()
Next nJ
EndIf
/*
Roda o XML parseado para gravar as novas informaes no GRID
*/
nJ := 1
While oDados:XPathHasNode(cCabec + "/infoComercProducao/ideEstabelecimento[" + CVALTOCHAR(nJ)
+ "]")

"tpEstabelecimento"

If nOpc == 4 .Or. nJ > 1


oModel:GetModel( 'MODEL_C9C' ):LVALID
oModel:GetModel( 'MODEL_C9C' ):AddLine()
EndIf
oModel:LoadValue( "MODEL_C9C", "C9C_ESTABE"
, "" , cTpInsc,cNrInsc,.F.))

:= .T.
, FGetIdInt(

/* Tipo de Comercializacao */
/*
Quando se trata de uma alterao, deleta-se todas as linhas do Grid
*/
If nOpc == 4
For nX:= 1 to oModel:GetModel( 'MODEL_C9D' ):Length()
oModel:GetModel( 'MODEL_C9D' ):GoLine(nX)
oModel:GetModel( 'MODEL_C9D' ):DeleteLine()
Next nX
EndIf
/*
Roda o XML parseado para gravar as novas informaes no GRID
*/
nX := 1
While oDados:XPathHasNode(cCabec + "/infoComercProducao/ideEstabelecimento[" +
CVALTOCHAR(nJ)+ "]/tipoComrcializacao[" + CVALTOCHAR(nX)+ "]" )
If nOpc == 4 .Or. nX > 1
oModel:GetModel( 'MODEL_C9D' ):LVALID
:= .T.
oModel:GetModel( 'MODEL_C9D' ):AddLine()
EndIf
oModel:LoadValue( "MODEL_C9D", "C9D_INDCOM", "1")
// Adquirente da Comercializao
/*
Quando se trata de uma alterao, deleta-se todas as linhas do Grid
*/
If nOpc == 4
For nI := 1 to oModel:GetModel( 'MODEL_C9E' ):Length()
oModel:GetModel( 'MODEL_C9E' ):GoLine(nI)
oModel:GetModel( 'MODEL_C9E' ):DeleteLine()
Next nI
EndIf
/*
Roda o XML parseado para gravar as novas informaes no GRID
*/
nI := 1
While oDados:XPathHasNode(cCabec + "/infoComercProducao/ideEstabelecimento[" +
CVALTOCHAR(nJ)+ "]/tipoComercializacao[" + CVALTOCHAR(nX)+ "]/ideAdquirente[" + CVALTOCHAR(nI)+ "]" )
If nOpc == 4 .Or. nI > 1
oModel:GetModel( 'MODEL_C9E' ):LVALID
:= .T.
oModel:GetModel( 'MODEL_C9E' ):AddLine()
EndIf
oModel:LoadValue( "MODEL_C9E","C9E_VBCPRD","10")
nI++
EndDo
nX++
EndDo
nJ++

Verso 1.0

77

Integrao TAF
Ttulo do documento
EndDo
/*
Efetiva a operao desejada
*/
FWFormCommit( oModel )
lRet := .T.
oModel:DeActivate()
EndIf
End Transaction

78

Verso 1.0

Integrao TAF

S-1370 eSocial Mensal Outras Informaes Rec. Recebidos ou Repassados p/


Clube de Futebol
Rotina:
Model MVC:
Validao
Gerao XML
Regras

TAFA255
MODEL_C9B; MODEL_C9G; MODEL_C9H; MODEL_C9I;
TAF255VLD()
TAF255XML()
#
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25

TAG
evtFpAssocDesportiva
Verso
infEvento
idEvento
ideEvento
indRetificacao
nrRecibo
indApuracao
perApuracao
tpAmb
procEmi
indSegmento
verProc
ideEmpregador
tpInscricao
nrInscricao
infoRecursoRecebido
recursosRecebidos
cnpjEmpOrigemRecurso
tpRepasse
dtRepasse
vlrRepasse
infoRecursoRepassado
ideEstabelecimento
tpInscricao

Model
MODEL_C9B
MODEL_C9B
MODEL_C9G
MODEL_C9G
MODEL_C9G
MODEL_C9G
MODEL_C9H

26
27
28
29
30
31
32

nrInscricao
vlrTotalRepasses
recursosRepassados
cnpjAssocDesportiva
tpRepasse
dtRepasse
vlrRepasse

MODEL_C9H
MODEL_C9I
MODEL_C9I
MODEL_C9I
MODEL_C9I

Exemplo:
cXml := xFunLerXML()
oDados := TXmlManager():New()
oDados:Parse(cXml)

Verso 1.0

79

Campo

FGetIDInt()

C9B_INDAPU
C9B_PERAPU

C9G_CNPJOR
C9G_TPREPO
C9G_DTREPA
C9G_VLREPA

C9H_ESTABE
C9H_VTOTRE
C9I_CNPJAD
C9I_TPREPA
C9I_DTREPA
C9I_VLREPA

tpEstabelecimento
nrEstabelecimento

Integrao TAF
Ttulo do documento
Aadd( aChave, { "C", "C9B_INDAPU", "1 ", .T. } )
Aadd( aChave, { "C", "C9B_PERAPU", "122013 ", .T. } )
Begin Transaction
//
//Funo para validar se a operao desejada pode ser realizada
//
If FTafVldOpe( 'C9B', 2, @nOpc, cFilEv, @aIncons, aChave, @oModel, 'TAFA255', cCmpsNoUpd )
If nOpc <> 5
oModel:LoadValue( "MODEL_C9B", "C9B_FILIAL", C9B->C9B_FILIAL )
// C9G
nC9G := 1
cC9GPath := cInfEvento + "/infoRecursoRecebido/recursosRecebidos[" + AllTrim(Str(nC9G))
+ "]"
If nOpc == 4 .And. oDados:XPathHasNode( cC9GPath )
For nJ := 1 to oModel:GetModel( 'MODEL_C9G' ):Length()
oModel:GetModel( 'MODEL_C9G' ):GoLine(nJ)
oModel:GetModel( 'MODEL_C9G' ):DeleteLine()
Next nJ
EndIf
While oDados:XPathHasNode( cC9GPath

If nOpc == 4 .Or. nC9G > 1


// Informa que a linha est para que seja includa uma nova linha
oModel:GetModel( "MODEL_C9G" ):LVALID := .T.
// Inclui uma linha a cada volta do lao
oModel:GetModel( "MODEL_C9G" ):AddLine()
EndIf
oModel:LoadValue( "MODEL_C9G", "C9G_VLREPA", "10")
nC9G++
cC9GPath := cInfEvento + "/infoRecursoRecebido/recursosRecebidos[" +
AllTrim(Str(nC9G)) + "]"
EndDo // Fim - C9G
// C9H
nC9H := 1
cC9HPath := cInfEvento + "/infoRecursoRepassado/ideEstabelecimento[" +
AllTrim(Str(nC9H)) + "]"
If nOpc == 4 .And. oDados:XPathHasNode( cC9HPath )
For nJ := 1 to oModel:GetModel( 'MODEL_C9H' ):Length()
oModel:GetModel( 'MODEL_C9H' ):GoLine(nJ)
oModel:GetModel( 'MODEL_C9H' ):DeleteLine()
Next nJ
EndIf
While oDados:XPathHasNode( cC9HPath )
If nOpc == 4 .Or. nC9H > 1
// Informa que a linha est vlida para que seja includa uma nova linha
oModel:GetModel( "MODEL_C9H" ):LVALID := .T.
// Inclui uma linha a cada volta do lao
oModel:GetModel( "MODEL_C9H" ):AddLine()
EndIf
oModel:LoadValue( "MODEL_C9H", "C9H_ESTABE", "110" )
// C9I
nC9I := 1
cC9IPath := cC9HPath + "/recursosRepassados[" + AllTrim(Str(nC9I)) + "]"
If nOpc == 4 .And. oDados:XPathHasNode( cC9IPath )
For nJ := 1 to oModel:GetModel( 'MODEL_C9I' ):Length()
oModel:GetModel( 'MODEL_C9I' ):GoLine(nJ)
oModel:GetModel( 'MODEL_C9I' ):DeleteLine()

80

Verso 1.0

Integrao TAF

Next nJ
EndIf
While oDados:XPathHasNode( cC9IPath

If nOpc == 4 .Or. nC9I > 1


// Informa que a linha est vlida para que seja includa uma
nova linha
oModel:GetModel( "MODEL_C9I" ):LVALID := .T.
// Inclui uma linha a cada volta do lao
oModel:GetModel( "MODEL_C9I" ):AddLine()
EndIf
oModel:LoadValue( "MODEL_C9I", "C9I_TPREPA", "1")
nC9I++
cC9IPath := cC9HPath + "/recursosRepassados[" + AllTrim(Str(nC9I)) + "]"
EndDo // Fim - C9I
nC9H++
cC9HPath := cInfEvento + "/infoRecursoRepassado/ideEstabelecimento[" +
AllTrim(Str(nC9H)) + "]"
EndDo // Fim - C9H
EndIf
//
//Efetiva a operao desejada
//
FWFormCommit( oModel )
lRet := .T.
oModel:DeActivate()
EndIf
End Transaction

S-1380 eSocial Mensal Informaes Complementares Desonerao


Rotina:
Model MVC:
Validao
Gerao XML
Regras

TAFA239
MODEL_CRR
TAF239VLD()
TAF239XML()
#
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16

TAG
eSocial
evtFpInfoDesoneracao
Id
Verso
ideEvento
indRetificacao
nrRecibo
indApuracao
perApuracao
tpAmb
procEmi
indSegmento
verProc
ideEmpregador
tpInscricao
nrInscricao

Verso 1.0

Model

Campo

MODEL_CRR
MODEL_CRR
-

CRR_INDAPU
CRR_PERAPU

81

FGetIDInt()

Integrao TAF
Ttulo do documento
17
18
19
20
21
22
23
24
25

recExpServicos
recBrutaExp12m
recBrutaTot12m
vlrTribRecBruta
qtdMesesAtiv
percReducaoLei11774
infoSubstPatronal
indSubstPatronal
percAliqPatronal

MODEL_CRR
MODEL_CRR
MODEL_CRR
MODEL_CRR
MODEL_CRR

CRR_VLREXP
CRR_VLRTOT
CRR_VLTRIB
CRR_QTDMES
CRR_VLREDU

MODEL_CRR
MODEL_CRR

CRR_INDSUB
CRR_ALIQPA

Exemplo:
Aadd( aChave, { "C", "CRR_INDAPU", cCabec + "/ideEvento/indApuracao", .F. } )
Aadd( aChave, { "C", "CRR_PERAPU", cCabec + "/ideEvento/perApuracao", .F. } )
Begin Transaction
//Funo para validar se a operao desejada pode ser realizada
If FTafVldOpe( "CRR", nIndChv, @nOpc, cFilEv, @aIncons, aChave, @oModel, "TAFA303",
cCmpsNoUpd, nIndIDVer, .F.)
If nOpc <> 5
oModel:LoadValue( "MODEL_CRR", "CRR_FILIAL", CRR->CRR_FILIAL )
oModel:LoadValue( "MODEL_CRR", "CRR_VLREXP", 1 )
EndIf
FWFormCommit( oModel )
lRet := .T.
oModel:DeActivate()
EndIf
End Transaction

S-1390 eSocial Peridicos Receitas de Atividades Concomitantes


Rotina:
Model MVC:
Validao
Gerao XML
Regras

TAFA292
MODEL_
TAF292VLD()
TAF292XML()
#
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15

TAG
eSocial
evtFpRecAtivConcomitante
Id
Verso
ideEvento
indRetificacao
nrRecibo
indApuracao
perApuracao
tpAmb
procEmi
indSegmento
verProc
ideEmpregador
tpInscricao

Model
MODEL_CRV
MODEL_CRV
-

82

Campo

FGetIDInt()

CRV_INDAPU
CRV_PERAPU

Verso 1.0

Integrao TAF

16
17
18
19
20
21
22
23

nrInscricao
recAtivConcomitante
recBrutaTotMes
recBrutaTotAno
recBrutaAtssMes
recBrutaAtssAno
fatorMes
fator13

MODEL_CRV
MODEL_CRV
MODEL_CRV
MODEL_CRV
MODEL_CVR
MODEL_CRV

CRV_TOTMES
CRV_TOTANO
CRV_ASSMES
CRV_ASSANO
CRV_FATMES
CRV_FAT13

Exemplo
Aadd( aChave, { "C", "CRV_INDAPU", cCabec + "/ideEvento/indApuracao", .F. } )
Aadd( aChave, { "C", "CRV_PERAPU", cCabec + "/ideEvento/perApuracao", .F. } )
Begin Transaction
//Funo para validar se a operao desejada pode ser realizada
If FTafVldOpe( "CRV", nIndChv, @nOpc, cFilEv, @aIncons, aChave, @oModel, "TAFA3292",
cCmpsNoUpd, nIndIDVer, .F.)
If nOpc <> 5
oModel:LoadValue( "MODEL_CRV", "CRV_FILIAL", CRV->CRV_FILIAL )
oModel:LoadValue( "MODEL_CRV", "CRV_TOTMES", 1 )
EndIf
FWFormCommit( oModel )
lRet := .T.
oModel:DeActivate()
EndIf
End Transaction

S-1399 eSocial Mensal Fechamento


Rotina:
Model MVC:
Validao
Gerao XML
Regras

TAFA303
MODEL_CUO
TAF303VLD()
TAF303XML()
#
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15

TAG
eSocial
evtFpFechamento
Id
Verso
ideEvento
indRetificacao
nrRecibo
indApuracao
perApuracao
tpAmb
procEmi
indSegmento
verProc
ideEmpregador
tpInscricao

Verso 1.0

Model
MODEL_CUO
MODEL_CUO
-

83

Campo

CUO_INDAPU
CUO_PERAPU

FGetIDInt()

Integrao TAF
Ttulo do documento
16
17
18
19
20
21
22
23
24
25
26
27
28

nrInscricao
InfoFechamento
evtRemuneracao
evtPagamentosDiversos
evtServTomadosCMO
evtServPrestadosCMO
evtServTomadosCOOP
evtServPrestadosCOOP
evtAquisProdRural
evtComercProducao
evtRepasseClubeFutebol
evtInfoDesoneracao
evtReceitaAtivConcomitantes

MODEL_CUO
MODEL_CUO
MODEL_CUO
MODEL_CUO
MODEL_CUO
MODEL_CUO
MODEL_CUO
MODEL_CUO
MODEL_CUO
MODEL_CUO
MODEL_CUO

CUO_REMUN
CUO_PAGDIV
CUO_SRVTCM
CUO_SRVPCM
CUO_SRVTCO
CUO_SRVPCO
CUO_AQUPRU
CUO_COMPRO
CUO_REPACF
CUO_INFDES
CUO_RECCON

Exemplo
Aadd( aChave, { "C", "CUO_INDAPU", cCabec + "/ideEvento/indApuracao", .F. } )
Aadd( aChave, { "C", "CUO_PERAPU", cCabec + "/ideEvento/perApuracao", .F. } )
Begin Transaction
//Funo para validar se a operao desejada pode ser realizada
If FTafVldOpe( "CUO", nIndChv, @nOpc, cFilEv, @aIncons, aChave, @oModel, "TAFA303",
cCmpsNoUpd, nIndIDVer, .F.)
If nOpc <> 5
oModel:LoadValue( "MODEL_CUO", "CUO_FILIAL", CUO->CUO_FILIAL )
oModel:LoadValue( "MODEL_CUO", "CUO_REMUN", 1 )
EndIf
FWFormCommit( oModel )
lRet := .T.
oModel:DeActivate()
EndIf
End Transaction

S-1400 eSocial Mensal Bases, Reteno, Dedues e Contribuies


Rotina:
Model MVC:

TAFA274
MODEL_CMX; MODEL_CMZ; MODEL_CR0; MODEL_CR1; MODEL_CR2; MODEL_CR3; MODEL_CR4; MODEL_CR5; MODEL_CR6;
MODEL_CR7; MODEL_CR8;

Validao
TAF274VLD()
Gerao XML TAF274XML()
#
TAG
Regras
01
02
03
04
05
06
07
08
09
10
11

evtFpBasesContrib
Verso
infEvento
idEvento
ideEvento
indRetificacao
nrRecibo
indApuracao
perApuracao
tpAmb
procEmi

Model
MODEL_CMX
MODEL_CMX
-

84

Campo

FGetIDInt()

CMX_INDAPU
CMX_PERAPU

Verso 1.0

Integrao TAF

12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62

indSegmento
verProc
ideEmpregador
tpInscricao
nrInscricao
ideConteudo
indConteudo
infoBasesContrib
ideEstabelecimento
tpInscricao
nrInscricao
basesPorCategoria
indIncidencia
codCateg
vlrBcCP
vlrBcCP15
vlrBcCP20
vlrBcCP25
vlrDescCP
vlrSalFam
vlrSalMat
basesPorOperPortuario
cnpjOpPortuario
vlrBcOpPortuario
basesPorFpas
Fpas
codTerceiros
bcTerceiros
contribPrevSocial
indTpContrib
vlrContribuicao
contribOutrasEntidades
Fpas
codTerceiros
vlrTotTerceiros
contribTerceiro
codTerceiro
aliqTerceiro
vlrTerceiro
infoCessaoMaoObra
retencaoEfetuada
idePrestadorObra
cnpjPrestador
indObra
nrCno
vlrRetencao
vlrAdicional
vlrNaoRetido
proprietarioCNO
tpInscProprietario
nrInscProprietario

Verso 1.0

MODEL_CMX
MODEL_CMZ
MODEL_CMZ

CMX_INDCON

CMZ_TPINSC
CMZ_INSCES

MODEL_CR0
MODEL_CR0
MODEL_CR0
MODEL_CR0
MODEL_CR0
MODEL_CR0
MODEL_CR0
MODEL_CR0
MODEL_CR0
MODEL_CR1
MODEL_CR1
MODEL_CR2

CR0_INDINC
CR0_CODCAT
CR0_BASECP
CR0_VLBC15
CR0_VLBC20
CR0_VLBC25
CR0_VLDESC
CR0_VLSALF
CR0_VLSALM

MODEL_CR2
MODEL_CR3
MODEL_CR3
MODEL_CR4

CR2_BCTERC

MODEL_CR4
MODEL_CR5
MODEL_CR5
MODEL_CR5
MODEL_CR6
MODEL_CR6
MODEL_CR6
MODEL_CR6
MODEL_CR6
MODEL_CR6
MODEL_CR6
MODEL_CR6

85

catTrabalhador

CR1_CNPJOP
CR1_VLBCOP
CR2_FPAS

"fpas","codTerceiros"

CR3_INDTP
CR3_VLCONT

tpContrib

CR4_FPAS

"fpas","codTerceiros"

CR4_VLTOT
CR5_TERCEI
CR5_ALIQTE
CR5_BASECP

CR6_CNPJPR
CR6_INDOBR
CR6_NRCNO
CR6_VLRETE
CR6_VLADIC
CR6_VLNRET
CR6_TPINSC
CR6_NRINSC

"fpas","codTerceiros"

Integrao TAF
Ttulo do documento
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83

retencaoSofrida
ideContratanteObra
tpInscContratante
nrInscContratante
indObra
nrCno
vlrRetencao
vlrAdicional
vlrNaoRetido
proprietarioCNO
tpInscProprietario
nrInscProprietario
remunPorContratante
tpInscContratante
nrInscContratante
nrCno
codCateg
bcCP
proprietarioCNO
tpInscProprietario
nrInscProprietario

MODEL_CR7
MODEL_CR7
MODEL_CR7
MODEL_CR7
MODEL_CR7
MODEL_CR7
MODEL_CR7
MODEL_CR7
MODEL_CR7
MODEL_CR8
MODEL_CR8
MODEL_CR8
MODEL_CR8
MODEL_CR8
MODEL_CR8
MODEL_CR8

CR7_TPINOB
CR7_INSCCO
CR7_INDOBR
CR7_NRCNO
CR7_VLRETE
CR7_VLADIC
CR7_VLNRET
CR7_TPINSC
CR7_NRINSC
CR8_TPINSC
CR8_INSCCO
CR8_NRCNO
CR8_CODCAT
CR8_BCCP

catTrabalhador

CR8_TPINSP
CR8_NRINSC

Exemplo:
cXml := xFunLerXML()
oDados := TXmlManager():New()
oDados:Parse(cXml)
Aadd( aChave, { "C", "CMX_INDAPU", "1", .T. } )
Aadd( aChave, { "C", "CMX_PERAPU", "102013", .T. } )
Begin Transaction
//
//Funo para validar se a operao desejada pode ser realizada
//
If FTafVldOpe( 'CMX', 2, @nOpc, cFilEv, @aIncons, aChave, @oModel, 'TAFA274', cCmpsNoUpd )
//Quando se tratar de uma Excluso direta, preciso apenas realizar
//o Commit(), no sendo necessria nenhuma manuteno nas informaes
If nOpc <> 5
oModel:LoadValue( "MODEL_CMX", "CMX_FILIAL", CMX->CMX_FILIAL )
oModel:LoadValue( "MODEL_CMX","CMX_INDAPU", "1" )
Next
// CMZ
If nOpc == 4 .And. lCMZ
For nJ := 1 to oModel:GetModel( 'MODEL_CMZ' ):Length()
oModel:GetModel( 'MODEL_CMZ' ):GoLine(nJ)
oModel:GetModel( 'MODEL_CMZ' ):DeleteLine()
Next nJ
EndIf
For nI :=1 to nCMZ
If nOpc == 4 .Or. nI > 1
// Informa que a linha est vlida para que seja includa uma nova linha

86

Verso 1.0

Integrao TAF

oModel:GetModel( "MODEL_CMZ" ):LVALID := .T.


// Inclui uma linha a cada volta do lao
oModel:GetModel( "MODEL_CMZ" ):AddLine()
EndIf
// Grava dados no model
oModel:LoadValue( "MODEL_CMZ", "CMZ_TPINSC",1 )
oModel:LoadValue( "MODEL_CMZ", "CMZ_INSCES", 0123456789 )
// CR0
If nOpc == 4 .And. lCR0
For nJ := 1 to oModel:GetModel( 'MODEL_CR0' ):Length()
oModel:GetModel( 'MODEL_CR0' ):GoLine(nJ)
oModel:GetModel( 'MODEL_CR0' ):DeleteLine()
Next nJ
EndIf
While !AliasCRO->EOF
If nOpc == 4 .Or. nCR0 > 1
// Informa que a linha est vlida para que seja includa uma
nova linha
oModel:GetModel( "MODEL_CR0" ):LVALID := .T.
// Inclui uma linha a cada volta do lao
oModel:GetModel( "MODEL_CR0" ):AddLine()
EndIf
oModel:LoadValue( "MODEL_CR0", "CR0_VLSALF", "123,)
oModel:LoadValue( "MODEL_CR0", "CR0_VLSALM", "325")
nCR0++
EndDo // Fim - CR0
// CR1
If nOpc == 4 .And. oDados:XPathHasNode( cCR1Path )
For nJ := 1 to oModel:GetModel( 'MODEL_CR1' ):Length()
oModel:GetModel( 'MODEL_CR1' ):GoLine(nJ)
oModel:GetModel( 'MODEL_CR1' ):DeleteLine()
Next nJ
EndIf
While oDados:XPathHasNode( cCR1Path

If nOpc == 4 .Or. nCR1 > 1


// Informa que a linha est vlida para que seja includa uma
nova linha
oModel:GetModel( "MODEL_CR1" ):LVALID := .T.
// Inclui uma linha a cada volta do lao
oModel:GetModel( "MODEL_CR1" ):AddLine()
EndIf
oModel:LoadValue( "MODEL_CR1", "CR1_CNPJOP", "00123000122")
oModel:LoadValue( "MODEL_CR1", "CR1_VLBCOP", "123456", "N", .F., @aIncons, .T. ) )
EndDo // Fim - CR1
// CR2
If nOpc == 4 .And. oDados:XPathHasNode( cCR2Path )
For nJ := 1 to oModel:GetModel( 'MODEL_CR2' ):Length()
oModel:GetModel( 'MODEL_CR2' ):GoLine(nJ)
oModel:GetModel( 'MODEL_CR2' ):DeleteLine()
Next nJ
EndIf
While oDados:XPathHasNode( cCR2Path

Verso 1.0

87

Integrao TAF
Ttulo do documento
If nOpc == 4 .Or. nCR2 > 1
// Informa que a linha est vlida para que seja includa uma
nova linha
oModel:GetModel( "MODEL_CR2" ):LVALID := .T.
// Inclui uma linha a cada volta do lao
oModel:GetModel( "MODEL_CR2" ):AddLine()
EndIf
oModel:LoadValue( "MODEL_CR2", "CR2_FPAS", FTafGetVal( nGetId,
"C", .T., @aIncons, .T. ) )
oModel:LoadValue( "MODEL_CR2", "CR2_BCTERC", FTafGetVal(
cCR2Path + "/bcTerceiros", "N", .F., @aIncons, .T. ) )
EndDo // Fim - CR2
// CR3
If nOpc == 4 .And. oDados:XPathHasNode( cCR3Path )
For nJ := 1 to oModel:GetModel( 'MODEL_CR3' ):Length()
oModel:GetModel( 'MODEL_CR3' ):GoLine(nJ)
oModel:GetModel( 'MODEL_CR3' ):DeleteLine()
Next nJ
EndIf
While oDados:XPathHasNode( cCR3Path

If nOpc == 4 .Or. nCR3 > 1


// Informa que a linha est vlida para que seja includa uma
nova linha
oModel:GetModel( "MODEL_CR3" ):LVALID := .T.
// Inclui uma linha a cada volta do lao
oModel:GetModel( "MODEL_CR3" ):AddLine()
EndIf
oModel:LoadValue( "MODEL_CR3", "CR3_INDTP", FTafGetVal( nGetId,
"C", .T., @aIncons, .T. ) )
oModel:LoadValue( "MODEL_CR3", "CR3_VLCONT", FTafGetVal(
cCR3Path + "/vlrContribuicao", "N", .F., @aIncons, .T. ) )
EndDo // Fim - CR3
// CR4
If nOpc == 4 .And. oDados:XPathHasNode( cCR4Path )
For nJ := 1 to oModel:GetModel( 'MODEL_CR4' ):Length()
oModel:GetModel( 'MODEL_CR4' ):GoLine(nJ)
oModel:GetModel( 'MODEL_CR4' ):DeleteLine()
Next nJ
EndIf
While oDados:XPathHasNode( cCR4Path

If nOpc == 4 .Or. nCR4 > 1


// Informa que a linha est para que seja includa uma nova
linha
oModel:GetModel( "MODEL_CR4" ):LVALID := .T.
// Inclui uma linha a cada volta do lao
oModel:GetModel( "MODEL_CR4" ):AddLine()
EndIf
oModel:LoadValue( "MODEL_CR4", "CR4_FPAS", FTafGetVal( nGetId,
"C", .T., @aIncons, .T. ) )
oModel:LoadValue( "MODEL_CR4", "CR4_VLTOT", FTafGetVal( cCR4Path
+ "/vlrTotTerceiros", "N", .F., @aIncons, .T. ) )
// CR5
If nOpc == 4 .And. oDados:XPathHasNode( cCR5Path )
For nJ := 1 to oModel:GetModel( 'MODEL_CR5' ):Length()
oModel:GetModel( 'MODEL_CR5' ):GoLine(nJ)

88

Verso 1.0

Integrao TAF

oModel:GetModel( 'MODEL_CR5' ):DeleteLine()


Next nJ
EndIf
While oDados:XPathHasNode( cCR5Path

If nOpc == 4 .Or. nCR5 > 1


// Informa que a linha est para que seja includa uma
nova linha
oModel:GetModel( "MODEL_CR5" ):LVALID := .T.
// Inclui uma linha a cada volta do lao
oModel:GetModel( "MODEL_CR5" ):AddLine()
EndIf
oModel:LoadValue( "MODEL_CR5", "CR5_TERCEI", FTafGetVal(
cCR5Path + "/codTerceiro", "C", .F., @aIncons, .T. ) )
oModel:LoadValue( "MODEL_CR5", "CR5_ALIQTE", FTafGetVal(
cCR5Path + "/aliqTerceiro", "N", .F., @aIncons, .T. ) )
oModel:LoadValue( "MODEL_CR5", "CR5_BASECP", FTafGetVal(
cCR5Path + "/vlrTerceiro", "N", .F., @aIncons, .T. ) )
EndDo // Fim - CR5
nCR4++
cCR4Path := cCMZPath + "/contribOutrasEntidades[" + AllTrim(Str(nCR4)) +
"]"
EndDo // Fim - CR4
nCMZ++
cCMZPath := cInfEvento + "/infoBasesContrib/ideEstabelecimento[" +
AllTrim(Str(nCMZ)) + "]"
EndDo
// CR6
nCR6 := 1
cCR6Path := cInfEvento + "/infoCessaoMaoObra/retencaoEfetuada/idePrestadorObra[" +
AllTrim(Str(nCR6)) + "]"
If nOpc == 4 .And. oDados:XPathHasNode( cCR6Path )
For nJ := 1 to oModel:GetModel( 'MODEL_CR6' ):Length()
oModel:GetModel( 'MODEL_CR6' ):GoLine(nJ)
oModel:GetModel( 'MODEL_CR6' ):DeleteLine()
Next nJ
EndIf
While oDados:XPathHasNode( cCR6Path

If nOpc == 4 .Or. nCR6 > 1


// Informa que a linha est para que seja includa uma nova linha
oModel:GetModel( "MODEL_CR6" ):LVALID := .T.
// Inclui uma linha a cada volta do lao
oModel:GetModel( "MODEL_CR6" ):AddLine()
EndIf
nGetId := FGetIdInt( "fpas", "codTerceiros", cCR6Path + "/fpas", cCR6Path +
"/codTerceiros" )
oModel:LoadValue(
"/cnpjPrestador", "C", .F., @aIncons, .T. ) )
oModel:LoadValue(
"C", .F., @aIncons, .T. ) )
oModel:LoadValue(
"C", .F., @aIncons, .T. ) )
oModel:LoadValue(
"/vlrRetencao", "N", .F., @aIncons, .T. ) )
oModel:LoadValue(
"/vlrAdicional", "N", .F., @aIncons, .T. ) )
oModel:LoadValue(
"/vlrNaoRetido", "N", .F., @aIncons, .T. ) )

Verso 1.0

"MODEL_CR6", "CR6_CNPJPR", FTafGetVal( cCR6Path +


"MODEL_CR6", "CR6_INDOBR", FTafGetVal( cCR6Path + "/indObra",
"MODEL_CR6", "CR6_NRCNO", FTafGetVal( cCR6Path + "/nrCno",
"MODEL_CR6", "CR6_VLRETE", FTafGetVal( cCR6Path +
"MODEL_CR6", "CR6_VLADIC", FTafGetVal( cCR6Path +
"MODEL_CR6", "CR6_VLNRET", FTafGetVal( cCR6Path +

89

Integrao TAF
Ttulo do documento
If oDados:XPathHasNode( cCR6Path + "/proprietarioCNO[1]" )
oModel:LoadValue( "MODEL_CR6", "CR6_TPINSC", FTafGetVal( cCR6Path +
"/proprietarioCNO[1]/tpInscProprietario", "C", .F., @aIncons, .T. ) )
oModel:LoadValue( "MODEL_CR6", "CR6_NRINSC", FTafGetVal( cCR6Path +
"/proprietarioCNO[1]/nrInscProprietario", "C", .F., @aIncons, .T. ) )
EndIf
nCR6++
cCR6Path := cInfEvento +
"/infoCessaoMaoObra/retencaoEfetuada/idePrestadorObra[" + AllTrim(Str(nCR6)) + "]"
EndDo // Fim - CR6
// CR7
nCR7 := 1
cCR7Path := cInfEvento + "/infoCessaoMaoObra/retencaoSofrida/ideContratanteObra[" +
AllTrim(Str(nCR7)) + "]"
If nOpc == 4 .And. oDados:XPathHasNode( cCR7Path )
For nJ := 1 to oModel:GetModel( 'MODEL_CR7' ):Length()
oModel:GetModel( 'MODEL_CR7' ):GoLine(nJ)
oModel:GetModel( 'MODEL_CR7' ):DeleteLine()
Next nJ
EndIf
While oDados:XPathHasNode( cCR7Path

If nOpc == 4 .Or. nCR7 > 1


// Informa que a linha est para que seja includa uma nova linha
oModel:GetModel( "MODEL_CR7" ):LVALID := .T.
// Inclui uma linha a cada volta do lao
oModel:GetModel( "MODEL_CR7" ):AddLine()
EndIf
nGetId := FGetIdInt( "fpas", "codTerceiros", cCR7Path + "/fpas", cCR7Path +
"/codTerceiros" )
oModel:LoadValue(
"/tpInscContratante", "C", .F., @aIncons, .T. )
oModel:LoadValue(
"/nrInscContratante", "C", .F., @aIncons, .T. )
oModel:LoadValue(
"C", .F., @aIncons, .T. ) )
oModel:LoadValue(
"C", .F., @aIncons, .T. ) )
oModel:LoadValue(
"/vlrRetencao", "N", .F., @aIncons, .T. ) )
oModel:LoadValue(
"/vlrAdicional", "N", .F., @aIncons, .T. ) )
oModel:LoadValue(
"/vlrNaoRetido", "N", .F., @aIncons, .T. ) )

"MODEL_CR7", "CR7_TPINOB", FTafGetVal( cCR7Path +


)
"MODEL_CR7", "CR7_INSCCO", FTafGetVal( cCR7Path +
)
"MODEL_CR7", "CR7_INDOBR", FTafGetVal( cCR7Path + "/indObra",
"MODEL_CR7", "CR7_NRCNO", FTafGetVal( cCR7Path + "/nrCno",
"MODEL_CR7", "CR7_VLRETE", FTafGetVal( cCR7Path +
"MODEL_CR7", "CR7_VLADIC", FTafGetVal( cCR7Path +
"MODEL_CR7", "CR7_VLNRET", FTafGetVal( cCR7Path +

If oDados:XPathHasNode( cCR7Path + "/proprietarioCNO[1]" )


oModel:LoadValue( "MODEL_CR7", "CR7_TPINSC", FTafGetVal( cCR7Path +
"/proprietarioCNO[1]/tpInscProprietario", "C", .F., @aIncons, .T. ) )
oModel:LoadValue( "MODEL_CR7", "CR7_NRINSC", FTafGetVal( cCR7Path +
"/proprietarioCNO[1]/nrInscProprietario", "C", .F., @aIncons, .T. ) )
EndIf
nCR7++
cCR7Path := cInfEvento +
"/infoCessaoMaoObra/retencaoSofrida/ideContratanteObra[" + AllTrim(Str(nCR7)) + "]"
EndDo // Fim - CR7
// CR8
nCR8 := 1
cCR8Path := cInfEvento + "/infoCessaoMaoObra/remunPorContratante[" + AllTrim(Str(nCR8))
+ "]"
If nOpc == 4 .And. oDados:XPathHasNode( cCR8Path )
For nJ := 1 to oModel:GetModel( 'MODEL_CR8' ):Length()

90

Verso 1.0

Integrao TAF

oModel:GetModel( 'MODEL_CR8' ):GoLine(nJ)


oModel:GetModel( 'MODEL_CR8' ):DeleteLine()
Next nJ
EndIf
While oDados:XPathHasNode( cCR8Path

If nOpc == 4 .Or. nCR8 > 1


// Informa que a linha est para que seja includa uma nova linha
oModel:GetModel( "MODEL_CR8" ):LVALID := .T.
// Inclui uma linha a cada volta do lao
oModel:GetModel( "MODEL_CR8" ):AddLine()
EndIf
nGetId := FGetIdInt( "catTrabalhador", , cCR8Path + "/codCateg" )
oModel:LoadValue(
"/tpInscContratante", "C", .F., @aIncons, .T. )
oModel:LoadValue(
"/nrInscContratante", "C", .F., @aIncons, .T. )
oModel:LoadValue(
"C", .F., @aIncons, .F. ) )
oModel:LoadValue(
@aIncons, .T. ) )
oModel:LoadValue(
.F., @aIncons, .T. ) )

"MODEL_CR8", "CR8_TPINSC", FTafGetVal( cCR8Path +


)
"MODEL_CR8", "CR8_INSCCO", FTafGetVal( cCR8Path +
)
"MODEL_CR8", "CR8_NRCNO", FTafGetVal( cCR8Path + "/nrCno",
"MODEL_CR8", "CR8_CODCAT", FTafGetVal( nGetId, "C", .T.,
"MODEL_CR8", "CR8_BCCP", FTafGetVal( cCR8Path + "/bcCP", "N",

If oDados:XPathHasNode( cCR8Path + "/proprietarioCNO[1]" )


oModel:LoadValue( "MODEL_CR8", "CR8_TPINSP", FTafGetVal( cCR8Path +
"/proprietarioCNO[1]/tpInscProprietario", "C", .F., @aIncons, .T. ) )
oModel:LoadValue( "MODEL_CR8", "CR8_NRINSC", FTafGetVal( cCR8Path +
"/proprietarioCNO[1]/nrInscProprietario", "C", .F., @aIncons, .T. ) )
EndIf
nCR8++
cCR8Path := cInfEvento + "/infoCessaoMaoObra/remunPorContratante[" +
AllTrim(Str(nCR8)) + "]"
EndDo // Fim - CR8
EndIf
//
//Efetiva a operao desejada
//
FWFormCommit( oModel )
lRet := .T.
oModel:DeActivate()
EndIf
End Transaction

Verso 1.0

91

Integrao TAF
Ttulo do documento
S-1800 eSocial Mensal Espetculo Desportivo
Rotina:

TAFA298
MODEL_CRS; MODEL_CRT; MODEL_CUG; MODEL_CUH; MODEL_CUI; MODEL_CUJ;
Model MVC:
MODEL_CUK; MODEL_CUL;
Validao
TAF298VLD()
Gerao XML TAF298XML()
#
TAG
Model
Campo
FGetIDInt()
Regras
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41

eSocial
evtEspDesportivo
Id
Verso
ideEvento
indRetificacao
nrRecibo
dtApuracao
tpAmb
procEmi
indSegmento
verProc
ideEmpregador
tpInscricao
nrInscricao
ideEstabelecimento
tpInscricao
nrInscricao
boletim
nrBoletim
tpCompeticao
categEvento
nomeCompeticao
cnpjMandante
cnpjMandante
nomeVisitante
pracaDesportiva
codMunicipio
uf
dtRealizacao
hrRealizacao
qtdePagantes
qtdeNaoPagantes
infoIngressos
cnpjResponsavel
tpInscricao
nrInscricao
qtdeIngressos
receitaIngressos
tpIngresso
tpPreco

MODEL_CRS
MODEL_CRT
MODEL_CRT
MODEL_CUG
MODEL_CUG
MODEL_CUG
MODEL_CUG
MODEL_CUG
MODEL_CUG
MODEL_CUG
MODEL_CUG
MODEL_CUG
MODEL_CUG
MODEL_CUG
MODEL_CUG
MODEL_CUG
MODEL_CUG
MODEL_CUH
MODEL_CUH
MODEL_CUH
MODEL_CUH
MODEL_CUI
MODEL_CUI

92

CRS_DTAPUR

CRT_TPINSC
CRT_NRINSC
CUG_NBOLET
CUG_TCOMPE
CUG_CTEVEN
CUG_NOMCOM
CUG_CNPJMA
CUG_CNPJVI
CUG_NOMVIS
CUG_PRADES
CUG_CODMUN
CUG_UF
CUG_DTREAL
CUG_HRINIC
CUG_QTDPAG
CUG_QTDNOP

"uf", "codMunicipio
uf

CUH_CNPJRE
CUH_TINSCR
CUH_NUMINS
CUH_QTDING
CUI_TPINGR
CUI_TPRECO

Verso 1.0

Integrao TAF

42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63

qtdeIngressosVenda
qtdeIngressosVendidos
qtdeIngressosDevolvidos
precoIndividual
vlrTotalArrecadado
outrasReceitas
tpReceita
vlrReceita
despesas
tpDespesa
vlrDespesa
detMaoObra
cpfTrab
vlrRemuneracao
vlrDescCP
contribPrevSocial
indTpContrib
vlrContribuicao
receitaTotal
vlrReceitaTotal
vlrReceitaClubes
vlrRetidoParcelamento

MODEL_CUI
MODEL_CUI
MODEL_CUI
MODEL_CUI
MODEL_CUI
MODEL_CUJ
MODEL_CUJ
MODEL_CUK
MODEL_CUK
MODEL_CUL
MODEL_CUL
MODEL_CUL
MODEL_CRT
MODEL_CRT
MODEL_CRT
MODEL_CRT
MODEL_CRT

CUI_QTDIVA
CUI_QTDIVS
CUI_QTDIDV
CUI_PRCIND
CUI_TOTARC
CUJ_TPREC
CUJ_VLRREC
CUK_TPDESP
CUK_VLRDES

tpDespesa

CUL_CPFTRB
CUL_VLRREM
CUL_VLDESC
CRT_CODCON
CRT_VLCONT

tpContrib

CRT_VLRBRU
CRT_VLCLUB
CRT_VLPARC

Exemplo:
oDados := oXML
Aadd( aChave, { "D", "CRS_DTAPUR", "/eSocial/evtEspDesportivo/ideEvento/dtApuracao", .F. } )
Begin Transaction
//
//Funo para validar se a operao desejada pode ser realizada
//
If FTafVldOpe( 'CRS', 2, @nOpc, cFilEv, @aIncons, aChave, @oModel, 'TAFA298', cCmpsNoUpd )
//
//Quando se tratar de uma Excluso direta, preciso apenas realizar
//o Commit(), no sendo necessria nenhuma manuteno nas informaes
//
If nOpc <> 5
oModel:LoadValue( "MODEL_CRS", "CRS_FILIAL", CRS->CRS_FILIAL )
oModel:LoadValue( "MODEL_CRS", "CRS_DTAPUR", FTafGetVal(
"/eSocial/evtEspDesportivo/ideEvento/dtApuracao", "D", .F., @aIncons, .T. ) )
// CRT
nCRT := 1
cCRTPath := "/eSocial/evtEspDesportivo/ideEstabelecimento[" + AllTrim(Str(nCRT)) + "]"
If nOpc == 4 .And. oDados:XPathHasNode( cCRTPath )
For nJ := 1 to oModel:GetModel( 'MODEL_Crt' ):Length()
oModel:GetModel( 'MODEL_CRT' ):GoLine(nJ)
oModel:GetModel( 'MODEL_CRT' ):DeleteLine()
Next nJ
EndIf
While oDados:XPathHasNode( cCRTPath )
If nOpc == 4 .Or. nCRT > 1

Verso 1.0

93

Integrao TAF
Ttulo do documento
// Informa que a linha est vlida para que seja includa uma nova linha
oModel:GetModel( "MODEL_CRT" ):LVALID := .T.
oModel:GetModel( "MODEL_CRT" ):AddLine()
EndIf
//
oModel:LoadValue(
@aIncons, .T. ) )
oModel:LoadValue(
@aIncons, .T. ) )
oModel:LoadValue(

Grava dados no model


"MODEL_CRT", "CRT_TPINSC", FTafGetVal( cCRTPath + "/tpInscricao", "C", .F.,
"MODEL_CRT", "CRT_NRINSC", FTafGetVal( cCRTPath + "/nrInscricao", "C", .F.,

"MODEL_CRT", "CRT_CODCON", FTafGetVal( FGetIdInt( "tpContrib", "",;


cCRTPath +
"/contribPrevSocial/indTpContrib"), "C", .T., @aIncons, .T. ) )
oModel:LoadValue( "MODEL_CRT", "CRT_VLCONT", FTafGetVal( cCRTPath +
"/contribPrevSocial/vlrContribuicao", "N", .F., @aIncons, .T. ) )
oModel:LoadValue( "MODEL_CRT", "CRT_VLRBRU", FTafGetVal( cCRTPath +
"/receitaTotal/vlrReceitaTotal", "N", .F., @aIncons, .T. ) )
oModel:LoadValue( "MODEL_CRT", "CRT_VLCLUB", FTafGetVal( cCRTPath +
"/receitaTotal/vlrReceitaClubes", "N", .F., @aIncons, .T. ) )
oModel:LoadValue( "MODEL_CRT", "CRT_VLPARC", FTafGetVal( cCRTPath +
"/receitaTotal/vlrRetidoParcelamento", "N", .F., @aIncons, .T. ) )
// CUG
nCUG := 1
cCUGPath := cCRTPath + "/boletim[" + AllTrim(Str(nCUG)) + "]"
If nOpc == 4 .And. oDados:XPathHasNode( cCUGPath )
For nJ := 1 to oModel:GetModel( 'MODEL_CUG' ):Length()
oModel:GetModel( 'MODEL_CUG' ):GoLine(nJ)
oModel:GetModel( 'MODEL_CUG' ):DeleteLine()
Next nJ
EndIf
While oDados:XPathHasNode( cCUGPath

If nOpc == 4 .Or. nCUG > 1


// Informa que a linha est para que seja includa uma nova
linha
oModel:GetModel( "MODEL_CUG" ):LVALID := .T.
oModel:GetModel( "MODEL_CUG" ):AddLine()
EndIf
oModel:LoadValue( "MODEL_CUG", "CUG_NBOLET", FTafGetVal( cCUGPath + "/nrBoletim", "C",
.F., @aIncons, .T. ) )
oModel:LoadValue( "MODEL_CUG", "CUG_TCOMPE", FTafGetVal( cCUGPath + "/tpCompeticao",
"C", .F., @aIncons, .T. ) )
oModel:LoadValue( "MODEL_CUG", "CUG_CTEVEN", FTafGetVal( cCUGPath + "/categEvento",
"C", .F., @aIncons, .T. ) )
oModel:LoadValue( "MODEL_CUG", "CUG_NOMCOM", FTafGetVal( cCUGPath + "/nomeCompeticao",
"C", .F., @aIncons, .T. ) )
oModel:LoadValue( "MODEL_CUG", "CUG_CNPJMA", FTafGetVal( cCUGPath + "/cnpjMandante",
"C", .F., @aIncons, .T. ) )
oModel:LoadValue( "MODEL_CUG", "CUG_CNPJVI", FTafGetVal( cCUGPath + "/cnpjVisitante",
"C", .F., @aIncons, .T. ) )
oModel:LoadValue( "MODEL_CUG", "CUG_NOMVIS", FTafGetVal( cCUGPath + "/nomeVisitante",
"C", .F., @aIncons, .T. ) )
oModel:LoadValue( "MODEL_CUG", "CUG_PRADES", FTafGetVal( cCUGPath +
"/pracaDesportiva", "C", .F., @aIncons, .T. ) )
oModel:LoadValue( "MODEL_CUG", "CUG_CODMUN", FTafGetVal( FGetIdInt(
"uf", "codMunicipio",;
cCUGPath + "/uf",;
cCUGPath + "/codMunicipio"), "C", .T., @aIncons, .F. ) )
oModel:LoadValue( "MODEL_CUG", "CUG_UF",
, "",;
cCUGPath + "/uf")

FTafGetVal( FGetIdInt( "uf"

, "C", .T., @aIncons, .F. ) )

94

Verso 1.0

Integrao TAF

oModel:LoadValue(
"D", .F., @aIncons, .T. ) )
oModel:LoadValue(
"C", .F., @aIncons, .T. ) )
oModel:LoadValue(
"N", .F., @aIncons, .T. ) )
oModel:LoadValue(
"N", .F., @aIncons, .T. ) )

"MODEL_CUG", "CUG_DTREAL", FTafGetVal( cCUGPath + "/dtRealizacao",


"MODEL_CUG", "CUG_HRINIC", FTafGetVal( cCUGPath + "/hrRealizacao",
"MODEL_CUG", "CUG_QTDPAG", FTafGetVal( cCUGPath + "/qtdePagantes",
"MODEL_CUG", "CUG_QTDNOP", FTafGetVal( cCUGPath + "/qtdeNaoPagantes",

// CUH
nCUH := 1
cCUHPath := cCUGPath + "/infoIngressos[" + AllTrim(Str(nCUH)) + "]"
If nOpc == 4 .And. oDados:XPathHasNode( cCUHPath )
For nJ := 1 to oModel:GetModel( 'MODEL_CUH' ):Length()
oModel:GetModel( 'MODEL_CUH' ):GoLine(nJ)
oModel:GetModel( 'MODEL_CUH' ):DeleteLine()
Next nJ
EndIf
While oDados:XPathHasNode( cCUHPath

If nOpc == 4 .Or. nCUH > 1


// Informa que a linha est para que seja includa uma
nova linha
oModel:GetModel( "MODEL_CUH" ):LVALID := .T.
oModel:GetModel( "MODEL_CUH" ):AddLine()
EndIf
oModel:LoadValue(
cCUHPath + "/cnpjResponsavel", "C", .F., @aIncons, .T. ) )
oModel:LoadValue(
cCUHPath + "/tpInscricao", "C", .F., @aIncons, .T. ) )
oModel:LoadValue(
cCUHPath + "/nrInscricao", "C", .F., @aIncons, .F. ) )
oModel:LoadValue(
cCUHPath + "/qtdeIngressos", "N", .F., @aIncons, .T. ) )

"MODEL_CUH", "CUH_CNPJRE", FTafGetVal(


"MODEL_CUH", "CUH_TINSCR", FTafGetVal(
"MODEL_CUH", "CUH_NUMINS", FTafGetVal(
"MODEL_CUH", "CUH_QTDING", FTafGetVal(

nCUH++
cCUHPath := cCUGPath + "/infoIngressos[" + AllTrim(Str(nCUH)) +
"]"
EndDo // Fim - CUH
// CUI
nCUI := 1
cCUIPath := cCUGPath + "/receitaIngressos[" + AllTrim(Str(nCUI)) + "]"
If nOpc == 4 .And. oDados:XPathHasNode( cCUIPath )
For nJ := 1 to oModel:GetModel( 'MODEL_CUI' ):Length()
oModel:GetModel( 'MODEL_CUI' ):GoLine(nJ)
oModel:GetModel( 'MODEL_CUI' ):DeleteLine()
Next nJ
EndIf
While oDados:XPathHasNode( cCUIPath

If nOpc == 4 .Or. nCUI > 1


// Informa que a linha est para que seja includa uma
nova linha
oModel:GetModel( "MODEL_CUI" ):LVALID := .T.
oModel:GetModel( "MODEL_CUI" ):AddLine()
EndIf
oModel:LoadValue( "MODEL_CUI",
cCUIPath + "/tpIngresso", "C", .F., @aIncons, .T. ) )
oModel:LoadValue( "MODEL_CUI",
cCUIPath + "/tpPreco", "C", .F., @aIncons, .T. ) )
oModel:LoadValue( "MODEL_CUI",
cCUIPath + "/qtdeIngressosVenda", "N", .F., @aIncons, .F. ) )
oModel:LoadValue( "MODEL_CUI",
cCUIPath + "/qtdeIngressosVendidos", "N", .F., @aIncons, .T. ) )

Verso 1.0

95

"CUI_TPINGR", FTafGetVal(
"CUI_TPRECO", FTafGetVal(
"CUI_QTDIVA", FTafGetVal(
"CUI_QTDIVS", FTafGetVal(

Integrao TAF
Ttulo do documento
oModel:LoadValue( "MODEL_CUI", "CUI_QTDIDV", FTafGetVal(
cCUIPath + "/qtdeIngressosDevolvidos", "N", .F., @aIncons, .F. ) )
oModel:LoadValue( "MODEL_CUI", "CUI_PRCIND", FTafGetVal(
cCUIPath + "/precoIndividual", "N", .F., @aIncons, .T. ) )
oModel:LoadValue( "MODEL_CUI", "CUI_TOTARC", FTafGetVal(
cCUIPath + "/vlrTotalArrecadado", "N", .F., @aIncons, .F. ) )
nCUI++
cCUIPath := cCUGPath + "/receitaIngressos[" + AllTrim(Str(nCUI))
+ "]"
EndDo // Fim - CUI
// CUJ
nCUJ := 1
cCUJPath := cCUGPath + "/outrasReceitas[" + AllTrim(Str(nCUJ)) + "]"
If nOpc == 4 .And. oDados:XPathHasNode( cCUJPath )
For nJ := 1 to oModel:GetModel( 'MODEL_CUJ' ):Length()
oModel:GetModel( 'MODEL_CUJ' ):GoLine(nJ)
oModel:GetModel( 'MODEL_CUJ' ):DeleteLine()
Next nJ
EndIf
While oDados:XPathHasNode( cCUJPath

If nOpc == 4 .Or. nCUJ > 1


// Informa que a linha est para que seja includa uma
nova linha
oModel:GetModel( "MODEL_CUJ" ):LVALID := .T.
oModel:GetModel( "MODEL_CUJ" ):AddLine()
EndIf
oModel:LoadValue( "MODEL_CUJ", "CUJ_TPREC", FTafGetVal( cCUJPath
+ "/tpReceita", "C", .F., @aIncons, .T. ) )
oModel:LoadValue( "MODEL_CUJ", "CUJ_VLRREC", FTafGetVal(
cCUJPath + "/vlrReceita", "N", .F., @aIncons, .T. ) )
nCUJ++
cCUJPath := cCUGPath + "/outrasReceitas[" + AllTrim(Str(nCUJ)) +
"]"
EndDo // Fim - CUJ
// CUK
nCUK := 1
cCUKPath := cCUGPath + "/despesas[" + AllTrim(Str(nCUK)) + "]"
If nOpc == 4 .And. oDados:XPathHasNode( cCUKPath )
For nJ := 1 to oModel:GetModel( 'MODEL_CUK' ):Length()
oModel:GetModel( 'MODEL_CUK' ):GoLine(nJ)
oModel:GetModel( 'MODEL_CUK' ):DeleteLine()
Next nJ
EndIf
While oDados:XPathHasNode( cCUKPath

If nOpc == 4 .Or. nCUK > 1


// Informa que a linha est para que seja includa uma
nova linha
oModel:GetModel( "MODEL_CUK" ):LVALID := .T.
oModel:GetModel( "MODEL_CUK" ):AddLine()
EndIf
oModel:LoadValue( "MODEL_CUK", "CUK_TPDESP", FTafGetVal(
FGetIdInt( "tpDespesa", "",;
cCUKPath +
"/tpDespesa"), "C", .T., @aIncons, .T. ) )
oModel:LoadValue( "MODEL_CUK", "CUK_VLRDES", FTafGetVal(
cCUKPath + "/vlrDespesa", "N", .F., @aIncons, .T. ) )
// CUL
nCUL := 1

96

Verso 1.0

Integrao TAF

cCULPath := cCUKPath + "/detMaoObra[" + AllTrim(Str(nCUL)) + "]"


If nOpc == 4 .And. oDados:XPathHasNode( cCULPath )
For nJ := 1 to oModel:GetModel( 'MODEL_CUL' ):Length()
oModel:GetModel( 'MODEL_CUL' ):GoLine(nJ)
oModel:GetModel( 'MODEL_CUL' ):DeleteLine()
Next nJ
EndIf
While oDados:XPathHasNode( cCULPath

If nOpc == 4 .Or. nCUL > 1


// Informa que a linha est para que seja includa
uma nova linha
oModel:GetModel( "MODEL_CUL" ):LVALID := .T.
oModel:GetModel( "MODEL_CUL" ):AddLine()
EndIf
oModel:LoadValue( "MODEL_CUL", "CUL_CPFTRB", FTafGetVal(
cCULPath + "/cpfTrab", "C", .F., @aIncons, .T. ) )
oModel:LoadValue( "MODEL_CUL", "CUL_VLRREM", FTafGetVal(
cCULPath + "/vlrRemuneracao", "N", .F., @aIncons, .T. ) )
oModel:LoadValue( "MODEL_CUL", "CUL_VLDESC", FTafGetVal(
cCULPath + "/vlrDescCP", "N", .F., @aIncons, .T. ) )
nCUL++
cCULPath := cCUKPath + "/detMaoObra[" +
AllTrim(Str(nCUL)) + "]"
EndDo // Fim - CUL
nCUK++
cCUKPath := cCUGPath + "/despesas[" + AllTrim(Str(nCUK)) + "]"
EndDo // Fim - CUK
nCUG++
cCUGPath := cCRTPath + "/boletim[" + AllTrim(Str(nCUG)) + "]"
EndDo // Fim - CUG
nCRT++
cCRTPath := "/eSocial/evtEspDesportivo/ideEstabelecimento[" +
AllTrim(Str(nCRT)) + "]"
EndDo // Fim - CRT
EndIf
//
//Efetiva a operao desejada
//
FWFormCommit( oModel )
lRet := .T.
oModel:DeActivate()
EndIf
End Transaction

Verso 1.0

97

Integrao TAF
Ttulo do documento
S-2100 Evento Cadastramento Inicial do Vnculo
Rotina:
Model MVC:
Validao
Gerao XML
Regras

TAFA256.prw
MODEL_C9V
TAF256VLD()
TAF256XML()
#
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43

TAG
evtCadInicial
Verso
infEvento
idEvento
ideEvento
indRetificacao
nrRecibo
tpAmb
procEmi
indSegmento
verProc
ideEmpregador
tpInscricao
nrInscricao
Trabalhador
cpfTrab
nisTrab
nomeTrab
Sexo
racaCor
estadoCivil
grauInstrucao
Nascimento
dtNascto
codMunicipio
Uf
paisNascto
paisNacionalidade
nomeMae
nomePai
Documentos
CTPS
nrCtps
serieCtps
ufCtps
RIC
nrRic
orgaoEmissor
dtExpedicao
RG
nrRg
orgaoEmissor
dtExpedicao

Model
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V

98

Campo

FGetIDInt()

C9V_CPF
C9V_NIS
C9V_NOME
C9V_SEXO
C9V_RCCOR
C9V_ESTCIV
C9V_GRINST
C9V_DTNASC
C9V_CODMUN
C9V_CODUF
C9V_CODPAI
C9V_PAINAC
C9V_NOMMAE
C9V_NOMPAI

C9V_NRCTPS
C9V_SERCTP
C9V_UFCTPS

Uf, codMunicipio
Uf
paisNascto
paisNacionalidade

ufCtps

C9V_NRRIC
C9V_OREMRI
C9V_DTEXRI
C9V_NRRG
C9V_OREMRG
C9V_DTEMRG

Verso 1.0

Integrao TAF

44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94

RNE
nrRne
orgaoEmissor
dtExpedicao
OC
nrOc
orgaoEmissor
dtExpedicao
dtValidade
CNH
nrCnh
orgaoEmissor
dtExpedicao
dtValidade
Endereo
Brasil
tpLogradouro
descLogradouro
nrLogradouro
Complemento
Bairro
CEP
codMunicipio
Uf
Exterior
paisResidencia
descLogradouro
nrLogradouro
Complemento
Bairro
nomeCidade
codPostal
infoCasaPropria
residenciaPropria
recursoFGTS
trabEstrangeiro
dtChegada
dtNaturalizacao
casadoBr
filhosBr
infBancarias
Banco
Agencia
tpContaBancaria
nrContaBancaria
infoDeficiencia
defMotora
defVisual
defAuditiva
Reabilitado
Observao

Verso 1.0

MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V

99

C9V_NRRNE
C9V_OREMRN
C9V_DTEMRN
C9V_NUMOC
C9V_OREMOC
C9V_DTEXOC
C9V_DTVLOC
C9V_NRCNH
C9V_OREMCN
C9V_DTEXCN
C9V_DTVLCN

C9V_TPLOGR
C9V_LOGRAD
C9V_NRLOG
C9V_COMLOG
C9V_BAIRRO
C9V_CEP
C9V_MUN
C9V_UF
C9V_PAIS
C9V_LOGRAD
C9V_NRLOG
C9V_COMLOG
C9V_BAIRRO
C9V_NOMCID
C9V_CEP
C9V_RESPRP
C9V_RECFGT
C9V_DTCHEG
C9V_DTNATU
C9V_CASBRA
C9V_FILBRA
C9V_BANCO
C9V_AGENC
C9V_TPCTBA
C9V_NRCTBA
C9V_DEFMOT
C9V_DEFVIS
C9V_DEFAUD
C9V_REABIL
C9V_OBSDEF

tpLogradouro

uf, codMunicipio
uf
paisResidencia

Integrao TAF
Ttulo do documento
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145

Dependente
tpDep
nomeDep
dtNascto
cpfDep
depIRRF
depSF
contato
fonePrincipal
foneAlternativo
emailPrincipal
emailAlternativo
Vinculo
Matricula
dtAdmissao
tpAdmissao
indAdmissao
indPrimeiroEmprego
Contrato
tpRegimeTrab
tpRegimePrev
natAtividade
codCateg
codCargo
codFuncao
Remunerao
vlrSalFixo
unidSalFixo
vlrSalVariavel
unidSalVariavel
Durao
tpContrato
dtTermino
localTrabalho
tpInscricao
nrInscricao
codLotacao
descComplementar
Jornada
jornadaPadrao
qtdHoras
codJornadaSegSexta
codJornadaSab
jornadaTurnoFixo
qtdHoras
codJornadaSeg
codJornadaTer
codJornadaQua
codJornadaQui
codJornadaSex
codJornadaSab

MODEL_C9Y
MODEL_C9Y
MODEL_C9Y
MODEL_C9Y
MODEL_C9Y
MODEL_C9Y
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V

100

C9Y_TPDEP
C9Y_NOMDEP
C9Y_DTNASC
C9Y_CPFDEP
C9Y_DEPIRF
C9Y_DEPSFA
C9V_FONPRC
C9V_FONALT
C9V_EMAILP
C9V_EMAILA
C9V_MATRIC
C9V_DTADMI
C9V_TPADMI
C9V_INDADM
C9V_INDPRE
C9V_TPREGT
C9V_TPREGP
C9V_NATATV
C9V_CODCAT
C9V_CODCGO
C9V_CODFUN

codCateg
codCargo
codFuncao

C9V_VLSLFX
C9V_UNSLFX
C9V_VLSLVR
C9V_UNSLVR
C9V_TPCONT
C9V_DTTERM
C9V_TPINSC
C9V_NRINSC
C9V_CODLOT
C9V_COMLOT

codLotacao

C9V_QTDHJP
C9V_CJORSS
C9V_CJORSA

codJornadaSegSexta
codJornadaSab

C9V_QTDHJF
C9V_JORSEG
C9V_JORTER
C9V_JORQUA
C9V_JORQUI
C9V_JORSEX
C9V_JORSAB

codJornadaSeg
codJornadaTer
codJornadaQua
codJornadaQui
codJornadaSex
codJornadaSab

Verso 1.0

Integrao TAF

146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180

codJornadaDom
jornadaTurnoFlexivel
Turno
codJornada
jornadaEspecial
tpEscala
qtdHoras
codJornada
filiacaoSindical
cnpjSindTrabalhador
alvaraJudicial
nrProcJud
FGTS
optanteFGTS
dtOpcaoFGTS
sucessaoVinc
cnpjEmpregadorAnterior
matriculaAnterior
dtInicioVinculo
Observao
cessaoTrab
cnpjCedente
matriculaCedente
dtAdmissaoCedente
infoOnus
ASO
dtAso
Medico
nomeMedico
CRM
nrCRM
ufCRM
Exame
dtExame
descExame

MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
-

C9V_JORDOM

codJornadaDom

C9V_CODTUR
C9V_CODJTF

codJornada

C9V_TPEJES
C9V_QTDHJE
C9V_CODJES

codJornada

C9V_CNPJSD
C9V_ALVJUD

nrProcJud

C9V_FGTS
C9V_DTFGTS
C9V_CNPJEA
C9V_MATANT
C9V_DTINVI
C9V_OBSVIN
C9V_CNPJCD
C9V_MATRCD
C9V_DTADCD
C9V_INFOCD

Exemplo:
cXml := xFunLerXML()
oDados := TXmlManager():New()
oDados:Parse(cXml)
aAdd( aChave, {"C", "C9V_MATRIC",MATRICULA001, .T. } )
aAdd( aChave, {"C", "C9V_CPF"
,"37400956876" , .T. } )
Begin Transaction
//
//Funo para validar se a operao desejada pode ser realizada
//
If FTafVldOpe( "C9V", 2, @nOpc, cFilEv, @aIncons, aChave, @oModel, "TAFA256", cCmpsNoUpd )
If nOpc == 3
oModel:LoadValue( "MODEL_C9V", "C9V_NOMEVE", "S2100" )
EndIf

Verso 1.0

101

Integrao TAF
Ttulo do documento
//
//Quando se tratar de uma Excluso direta, preciso apenas realizar
//o Commit(), no sendo necessria nenhuma manuteno nas informaes
//
If nOpc <> 5
oModel:LoadValue( "MODEL_C9V", "C9V_FILIAL", C9V->C9V_FILIAL )
oModel:LoadValue( "MODEL_C9V", "C9V_CPF"
,"37400956876" )
//Quando se trata de uma alterao, deleta-se todas as linhas do Grid
If nOpc == 4 .and. lExisteC9Y
For nJ := 1 to oModel:GetModel( "MODEL_C9Y" ):Length()
oModel:GetModel( "MODEL_C9Y" ):GoLine(nJ)
oModel:GetModel( "MODEL_C9Y" ):DeleteLine()
Next nJ
EndIf
//
//Roda o XML parseado para gravar as novas informaes no GRID
//
For nJ := 1 to nX
If nOpc == 4 .or. nJ > 1
oModel:GetModel( "MODEL_C9Y" ):lValid:= .T.
oModel:GetModel( "MODEL_C9Y" ):AddLine()
EndIf
oModel:LoadValue( "MODEL_C9Y", "C9Y_IDDEP" , StrZero(nJ,6) )
oModel:LoadValue( "MODEL_C9Y", "C9Y_NOMDEP", Leandro)
Next nJ
EndIf
//
//Efetiva a operao desejada
//
FWFormCommit( oModel )
lRet := .T.
oModel:DeActivate()
EndIf
End Transaction

S-2200 Evento Admisso


Rotina:
Model MVC:
Validao
Gerao XML
Regras

TAFA278.prw
MODEL_C9V
TAF278VLD()
TAF278XML()
#
01
02
03
04
05
06
07
08
09

TAG
evtAdmissao
Verso
infEvento
idEvento
ideEvento
indRetificacao
nrRecibo
tpAmb
procEmi

Model
-

102

Campo

FGetIDInt()

Verso 1.0

Integrao TAF

10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60

indSegmento
verProc
ideEmpregador
tpInscricao
nrInscricao
Trabalhador
cpfTrab
nisTrab
nomeTrab
Sexo
racaCor
estadoCivil
grauInstrucao
Nascimento
dtNascto
codMunicipio
Uf
paisNascto
paisNacionalidade
nomeMae
nomePai
Documentos
CTPS
nrCtps
serieCtps
ufCtps
RIC
nrRic
orgaoEmissor
dtExpedicao
RG
nrRg
orgaoEmissor
dtExpedicao
RNE
nrRne
orgaoEmissor
dtExpedicao
OC
nrOc
orgaoEmissor
dtExpedicao
dtValidade
CNH
nrCnh
orgaoEmissor
dtExpedicao
dtValidade
Endereo
Brasil
tpLogradouro

Verso 1.0

MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V

103

C9V_CPF
C9V_NIS
C9V_NOME
C9V_SEXO
C9V_RCCOR
C9V_ESTCIV
C9V_GRINST
C9V_DTNASC
C9V_CODMUN
C9V_CODUF
C9V_CODPAI
C9V_PAINAC
C9V_NOMMAE
C9V_NOMPAI

C9V_NRCTPS
C9V_SERCTP
C9V_UFCTPS

Uf, codMunicipio
Uf
paisNascto
paisNacionalidade

ufCtps

C9V_NRRIC
C9V_OREMRI
C9V_DTEXRI
C9V_NRRG
C9V_OREMRG
C9V_DTEMRG
C9V_NRRNE
C9V_OREMRN
C9V_DTEMRN
C9V_NUMOC
C9V_OREMOC
C9V_DTEXOC
C9V_DTVLOC
C9V_NRCNH
C9V_OREMCN
C9V_DTEXCN
C9V_DTVLCN

C9V_TPLOGR

tpLogradouro

Integrao TAF
Ttulo do documento
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111

descLogradouro
nrLogradouro
Complemento
Bairro
CEP
codMunicipio
Uf
Exterior
paisResidencia
descLogradouro
nrLogradouro
Complemento
Bairro
nomeCidade
codPostal
infoCasaPropria
residenciaPropria
recursoFGTS
trabEstrangeiro
dtChegada
dtNaturalizacao
casadoBr
filhosBr
infBancarias
Banco
Agencia
tpContaBancaria
nrContaBancaria
infoDeficiencia
defMotora
defVisual
defAuditiva
Reabilitado
Observao
Dependente
tpDep
nomeDep
dtNascto
cpfDep
depIRRF
depSF
contato
fonePrincipal
foneAlternativo
emailPrincipal
emailAlternativo
Vinculo
Matricula
dtAdmissao
tpAdmissao
indAdmissao

MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9Y
MODEL_C9Y
MODEL_C9Y
MODEL_C9Y
MODEL_C9Y
MODEL_C9Y
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V

104

C9V_LOGRAD
C9V_NRLOG
C9V_COMLOG
C9V_BAIRRO
C9V_CEP
C9V_MUN
C9V_UF
C9V_PAIS
C9V_LOGRAD
C9V_NRLOG
C9V_COMLOG
C9V_BAIRRO
C9V_NOMCID
C9V_CEP

uf, codMunicipio
uf
paisResidencia

C9V_RESPRP
C9V_RECFGT
C9V_DTCHEG
C9V_DTNATU
C9V_CASBRA
C9V_FILBRA
C9V_BANCO
C9V_AGENC
C9V_TPCTBA
C9V_NRCTBA
C9V_DEFMOT
C9V_DEFVIS
C9V_DEFAUD
C9V_REABIL
C9V_OBSDEF
C9Y_TPDEP
C9Y_NOMDEP
C9Y_DTNASC
C9Y_CPFDEP
C9Y_DEPIRF
C9Y_DEPSFA
C9V_FONPRC
C9V_FONALT
C9V_EMAILP
C9V_EMAILA
C9V_MATRIC
C9V_DTADMI
C9V_TPADMI
C9V_INDADM

Verso 1.0

Integrao TAF

112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162

indPrimeiroEmprego
Contrato
tpRegimeTrab
tpRegimePrev
natAtividade
codCateg
codCargo
codFuncao
Remunerao
vlrSalFixo
unidSalFixo
vlrSalVariavel
unidSalVariavel
Durao
tpContrato
dtTermino
localTrabalho
tpInscricao
nrInscricao
codLotacao
descComplementar
Jornada
jornadaPadrao
qtdHoras
codJornadaSegSexta
codJornadaSab
jornadaTurnoFixo
qtdHoras
codJornadaSeg
codJornadaTer
codJornadaQua
codJornadaQui
codJornadaSex
codJornadaSab
codJornadaDom
jornadaTurnoFlexivel
Turno
codJornada
jornadaEspecial
tpEscala
qtdHoras
codJornada
filiacaoSindical
cnpjSindTrabalhador
alvaraJudicial
nrProcJud
FGTS
optanteFGTS
dtOpcaoFGTS
sucessaoVinc
cnpjEmpregadorAnterior

Verso 1.0

MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V

105

C9V_INDPRE
C9V_TPREGT
C9V_TPREGP
C9V_NATATV
C9V_CODCAT
C9V_CODCGO
C9V_CODFUN

codCateg
codCargo
codFuncao

C9V_VLSLFX
C9V_UNSLFX
C9V_VLSLVR
C9V_UNSLVR
C9V_TPCONT
C9V_DTTERM
C9V_TPINSC
C9V_NRINSC
C9V_CODLOT
C9V_COMLOT

codLotacao

C9V_QTDHJP
C9V_CJORSS
C9V_CJORSA

codJornadaSegSexta
codJornadaSab

C9V_QTDHJF
C9V_JORSEG
C9V_JORTER
C9V_JORQUA
C9V_JORQUI
C9V_JORSEX
C9V_JORSAB
C9V_JORDOM

codJornadaSeg
codJornadaTer
codJornadaQua
codJornadaQui
codJornadaSex
codJornadaSab
codJornadaDom

C9V_CODTUR
C9V_CODJTF

codJornada

C9V_TPEJES
C9V_QTDHJE
C9V_CODJES

codJornada

C9V_CNPJSD
C9V_ALVJUD
C9V_FGTS
C9V_DTFGTS
C9V_CNPJEA

nrProcJud

Integrao TAF
Ttulo do documento
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180

matriculaAnterior
dtInicioVinculo
Observao
cessaoTrab
cnpjCedente
matriculaCedente
dtAdmissaoCedente
infoOnus
ASO
dtAso
Medico
nomeMedico
CRM
nrCRM
ufCRM
Exame
dtExame
descExame

MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
-

C9V_MATANT
C9V_DTINVI
C9V_OBSVIN
C9V_CNPJCD
C9V_MATRCD
C9V_DTADCD
C9V_INFOCD

Exemplo:
aAdd( aChave, {"C", "C9V_MATRIC",MATRICULA001, .T. } )
aAdd( aChave, {"C", "C9V_CPF"
,"37400956876" , .T. } )
Begin Transaction
//
//Funo para validar se a operao desejada pode ser realizada
//
If FTafVldOpe( "C9V", 2, @nOpc, cFilEv, @aIncons, aChave, @oModel, "TAFA278", cCmpsNoUpd )
If nOpc == 3
oModel:LoadValue( "MODEL_C9V", "C9V_NOMEVE", "S2200" )
EndIf
//
//Quando se tratar de uma Excluso direta, preciso apenas realizar
//o Commit(), no sendo necessria nenhuma manuteno nas informaes
//
If nOpc <> 5
oModel:LoadValue( "MODEL_C9V", "C9V_FILIAL", C9V->C9V_FILIAL )
oModel:LoadValue( "MODEL_C9V", "C9V_CPF"
,"37400956876" )
//Quando se trata de uma alterao, deleta-se todas as linhas do Grid
If nOpc == 4 .and. lExisteC9Y
For nJ := 1 to oModel:GetModel( "MODEL_C9Y" ):Length()
oModel:GetModel( "MODEL_C9Y" ):GoLine(nJ)
oModel:GetModel( "MODEL_C9Y" ):DeleteLine()
Next nJ
EndIf
//
//Roda o XML parseado para gravar as novas informaes no GRID
//
For nJ := 1 to nX
If nOpc == 4 .or. nJ > 1
oModel:GetModel( "MODEL_C9Y" ):lValid:= .T.
oModel:GetModel( "MODEL_C9Y" ):AddLine()
EndIf
oModel:LoadValue( "MODEL_C9Y", "C9Y_IDDEP" , StrZero(nJ,6) )

106

Verso 1.0

Integrao TAF

oModel:LoadValue( "MODEL_C9Y", "C9Y_NOMDEP", Leandro)


Next nJ
EndIf
//
//Efetiva a operao desejada
//
FWFormCommit( oModel )
lRet := .T.
oModel:DeActivate()
EndIf
End Transaction

Verso 1.0

107

Integrao TAF
Ttulo do documento
S-2220 Alterao de Dados Cadastrais
Rotina:
Model MVC:
Validao
Gerao XML
Regras

TAFA275
MODEL_CRA
TAF275VLD()
TAF275XML()
#
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43

TAG
evtAltCadastral
Verso
infEvento
idEvento
ideEvento
indRetificacao
nrRecibo
tpAmb
procEmi
indSegmento
verProc
ideEmpregador
tpInscricao
nrInscricao
Alterao
dtAlteracao
dadosTrabalhador
cpfTrab
nisTrab
nomeTrab
Sexo
racaCor
estadoCivil
grauInstrucao
Nascimento
dtNascto
codMunicipio
Uf
paisNascto
paisNacionalidade
nomeMae
nomePai
Documentos
CTPS
nrCtps
serieCtps
ufCtps
RIC
nrRic
orgaoEmissor
dtExpedicao
RG
nrRg

Model
-

Campo

MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA

CRA_CPF
CRA_NIS
CRA_NOME
CRA_SEXO
CRA_RCCOR
CRA_ESTCIV
CRA_GRINST

108

CRA_DTNASC
CRA_CODMUN
CRA_CODUF
CRA_CODPAI
CRA_PAINAC
CRA_NOMMAE
CRA_NOMPAI

CRA_NRCTPS
CRA_SERCTP
CRA_UFCTPS

FGetIDInt()

Uf, codMunicipio
Uf
paisNascto
paisNacionalidade

ufCtps

CRA_NRRIC
CRA_OREMRI
CRA_DTEXRI
CRA_NRRG

Verso 1.0

Integrao TAF

44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94

orgaoEmissor
dtExpedicao
RNE
nrRne
orgaoEmissor
dtExpedicao
OC
nrOc
orgaoEmissor
dtExpedicao
dtValidade
CNH
nrCnh
orgaoEmissor
dtExpedicao
dtValidade
Endereo
Brasil
tpLogradouro
descLogradouro
nrLogradouro
Complemento
Bairro
CEP
codMunicipio
Uf
Exterior
paisResidencia
descLogradouro
nrLogradouro
Complemento
Bairro
nomeCidade
codPostal
infoCasaPropria
residenciaPropria
recursoFGTS
trabEstrangeiro
dtChegada
dtNaturalizacao
casadoBr
filhosBr
infBancarias
Banco
Agencia
tpContaBancaria
nrContaBancaria
infoDeficiencia
defMotora
defVisual
defAuditiva

Verso 1.0

MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA

109

CRA_OREMRG
CRA_DTEMRG
CRA_NRRNE
CRA_OREMRN
CRA_DTEMRN
CRA_NUMOC
CRA_OREMOC
CRA_DTEXOC
CRA_DTVLOC
CRA_NRCNH
CRA_OREMCN
CRA_DTEXCN
CRA_DTVLCN

CRA_TPLOGR
CRA_LOGRAD
CRA_NRLOG
CRA_COMLOG
CRA_BAIRRO
CRA_CEP
CRA_MUN
CRA_UF
CRA_PAIS
CRA_LOGRAD
CRA_NRLOG
CRA_COMLOG
CRA_BAIRRO
CRA_NOMCID
CRA_CEP
CRA_RESPRP
CRA_RECFGT
CRA_DTCHEG
CRA_DTNATU
CRA_CASBRA
CRA_FILBRA
CRA_BANCO
CRA_AGENC
CRA_TPCTBA
CRA_NRCTBA
CRA_DEFMOT
CRA_DEFVIS
CRA_DEFAUD

tpLogradouro

uf, codMunicipio
uf
paisResidencia

Integrao TAF
Ttulo do documento
95
96
97
98
99
100
101
102
103
104
105
106
107
108

Reabilitado
Observao
Dependente
tpDep
nomeDep
dtNascto
cpfDep
depIRRF
depSF
contato
fonePrincipal
foneAlternativo
emailPrincipal
emailAlternativo

MODEL_CRA
MODEL_CRA
MODEL_C9Y
MODEL_C9Y
MODEL_C9Y
MODEL_C9Y
MODEL_C9Y
MODEL_C9Y
MODEL_CRA
MODEL_CRA
MODEL_CRA
MODEL_CRA

CRA_REABIL
CRA_OBSDEF
C9Y_TPDEP
C9Y_NOMDEP
C9Y_DTNASC
C9Y_CPFDEP
C9Y_DEPIRF
C9Y_DEPSFA
CRA_FONPRC
CRA_FONALT
CRA_EMAILP
CRA_EMAILA

Exemplo:
aAdd( aChave, {"C", "CRA_CODTRA","37400956876", .T. } )
aAdd( aChave, {"D", "CRA_DTALTR","2013-11-14" , .T. } )
Begin Transaction
//
//Funo para validar se a operao desejada pode ser realizada
//
If FTafVldOpe( "CRA", 2, @nOpc, cFilEv, @aIncons, aChave, @oModel, "TAFA275", cCmpsNoUpd )
//
//Quando se tratar de uma Excluso direta, preciso apenas realizar
//o Commit(),no sendo necessria nenhuma manuteno nas informaes
//
If nOpc <> 5
oModel:LoadValue( "MODEL_CRA", "CRA_FILIAL", CRA->CRA_FILIAL )
oModel:LoadValue( "MODEL_CRA", "CRA_DTALTR","2013-11-14")
//Quando se trata de uma alteracao, deleto todas as linhas do Grid
If nOpc == 4 .and. lExisteC9Y
For nJ := 1 to oModel:GetModel( "MODEL_C9Y" ):Length()
oModel:GetModel( "MODEL_C9Y" ):GoLine(nJ)
oModel:GetModel( "MODEL_C9Y" ):DeleteLine()
Next nJ
EndIf
//
//Roda o XML parseado para gravar as novas informaes no GRID
//
For nJ := 1 to nX
If nOpc == 4 .or. nJ > 1
oModel:GetModel( "MODEL_C9Y" ):lValid:= .T.
oModel:GetModel( "MODEL_C9Y" ):AddLine()
EndIf
oModel:LoadValue( "MODEL_C9Y", "C9Y_IDDEP" , StrZero(nJ,6) )
oModel:LoadValue( "MODEL_C9Y", "C9Y_NOMDEP", Leandro)
Next nJ
EndIf
//
//Efetiva a operao desejada
//
FWFormCommit( oModel )
lRet := .T.

110

Verso 1.0

Integrao TAF

oModel:DeActivate()
EndIf
End Transaction

Verso 1.0

111

Integrao TAF
Ttulo do documento
S-2240 Alterao Contratual
Rotina:
Model MVC:
Validao
Gerao XML
Regras

TAFA276
MODEL_CRB
TAF276VLD()
TAF276XML()
#
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43

TAG
evtAltContratual
Verso
infEvento
idEvento
ideEvento
indRetificacao
nrRecibo
tpAmb
procEmi
indSegmento
verProc
ideEmpregador
tpInscricao
nrInscricao
ideVinculo
cpfTrab
nisTrab
Matricula
altContratual
dtAlteracao
Contrato
tpRegimeTrab
tpRegimePrev
natAtividade
codCateg
codCargo
codFuncao
Remunerao
vlrSalFixo
unidSalFixo
vlrSalVariavel
unidSalVariavel
Durao
tpContrato
dtTermino
localTrabalho
tpInscricao
nrInscricao
codLotacao
descComplementar
Jornada
jornadaPadrao
qtdHoras

Model
MODEL_CRB
MODEL_CRB
MODEL_CRB
MODEL_CRB
MODEL_CRB
MODEL_CRB
MODEL_CRB
MODEL_CRB
MODEL_CRB
MODEL_CRB
MODEL_CRB
MODEL_CRB
MODEL_CRB
MODEL_CRB
MODEL_CRB
MODEL_CRB
MODEL_CRB
MODEL_CRB
MODEL_CRB
MODEL_CRB
MODEL_CRB

112

Campo

FGetIDInt()

CRB_DTALTC
CRB_TPREGT
CRB_TPREGP
CRB_NATATV
CRB_CODCAT
CRB_CODCGO
CRB_CODFUN

codCateg
codCargo
codFuncao

CRB_VLSLFX
CRB_UNSLFX
CRB_VLSLVR
CRB_UNSLVR
CRB_TPCONT
CRB_DTTERM
CRB_TPINSC
CRB_NRINSC
CRB_CODLOT
CRB_COMLOT

codLotacao

CRB_QTDHJP

Verso 1.0

Integrao TAF

44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65

codJornadaSegSexta
codJornadaSab
jornadaTurnoFixo
qtdHoras
codJornadaSeg
codJornadaTer
codJornadaQua
codJornadaQui
codJornadaSex
codJornadaSab
codJornadaDom
jornadaTurnoFlexivel
Turno
codJornada
jornadaEspecial
tpEscala
qtdHoras
codJornada
filiacaoSindical
cnpjSindTrabalhador
alvaraJudicial
nrProcJud

MODEL_CRB
MODEL_CRB
MODEL_CRB
MODEL_CRB
MODEL_CRB
MODEL_CRB
MODEL_CRB
MODEL_CRB
MODEL_CRB
MODEL_CRB
MODEL_CRB
MODEL_CRB
MODEL_CRB
MODEL_CRB
MODEL_CRB
MODEL_CRB
MODEL_CRB

CRB_CJORSS
CRB_CJORSA

codJornadaSegSexta
codJornadaSab

CRB_QTDHJF
CRB_JORSEG
CRB_JORTER
CRB_JORQUA
CRB_JORQUI
CRB_JORSEX
CRB_JORSAB
CRB_JORDOM

codJornadaSeg
codJornadaTer
codJornadaQua
codJornadaQui
codJornadaSex
codJornadaSab
codJornadaDom

CRB_CODTUR
CRB_CODJTF

codJornada

CRB_TPEJES
CRB_QTDHJE
CRB_CODJES

codJornada

CRB_CNPJSD
CRB_ALVJUD

nrProcJud

Exemplo:
aAdd( aChave, {"C", "CRB_CODTRA","37400956876", .T. } )
aAdd( aChave, {"D", "CRB_DTALTR","2013-11-14" , .T. } )
Begin Transaction
//
//Funo para validar se a operao desejada pode ser realizada
//
If FTafVldOpe( "CRB", 2, @nOpc, cFilEv, @aIncons, aChave, @oModel, "TAFA276", cCmpsNoUpd )
//
//Quando se tratar de uma Excluso direta, preciso apenas realizar
//o Commit(), no sendo necessria nenhuma manuteno nas informaes
//
If nOpc <> 5
oModel:LoadValue( "MODEL_CRB", "CRB_FILIAL", CRB->CRB_FILIAL )
oModel:LoadValue( "MODEL_CRB", "CRB_DTALTR","2013-11-14")
EndIf
//
//Efetiva a operao desejada
//
FWFormCommit( oModel )
lRet := .T.
oModel:DeActivate()
EndIf
End Transaction

Verso 1.0

113

Integrao TAF
Ttulo do documento
S-2260 Comunicao de Acidente de Trabalho
Rotina:
Model MVC:
Validao
Gerao XML
Regras

TAFA257
MODEL_CM0
TAF257VLD()
TAF257XML()
#
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43

TAG
eSocial
evtCAT
Id
Verso
ideEvento
indRetificacao
nrRecibo
tpAmb
procEmi
indSegmento
verProc
ideEmpregador
tpInscricao
nrInscricao
ideTrabalhador
cpfTrab
nisTrab
Cat
dtAcidente
horaAcidente
horasTrabAntesAcidente
tpAcidente
tpCat
indCatParcial
indCatObito
indComunicPolicia
codSitGeradora
localAcidente
tpLocal
descLocal
descLogradouro
nrLogradouro
codMunicipio
Uf
cnpjLocalAcidente
parteAtingida
codParteAtingida
agenteCausador
codAgenteCausador
Testemunha
nomeTestemunha
descLogradouro
nrLogradouro

Model
MODEL_CM0
MODEL_CM0
MODEL_CM0
MODEL_CM0
MODEL_CM0
MODEL_CM0
MODEL_CM0
MODEL_CM0
MODEL_CM0
MODEL_CM0
MODEL_CM0
MODEL_CM0
MODEL_CM0
MODEL_CM0
MODEL_CM0
MODEL_CM0
MODEL_CM0
MODEL_CM0
MODEL_CM1
MODEL_CM2
MODEL_CM3
MODEL_CM3
MODEL_CM3

114

Campo

FGetIDInt()

CM0_TRABAL

cpfTrab

CM0_DTACID
CM0_HRACID
CM0_HRTRAB
CM0_TPACID
CM0_TPCAT
CM0_INDPAR
CM0_INDOBI
CM0_COMPOL
CM0_CODSIT
CM0_TPLOC
CM0_DESLOC
CM0_DESLOG
CM0_NRLOG
CM0_CODMUN
CM0_UF
CM0_CNPJLO

Uf,codMunicipio
uf

CM1_CODPAR

codParteAtingida

CM2_CODAGE

codAgenteCausador

CM3_NOMTES
CM3_DESLOG
CM3_NRLOG

Verso 1.0

Integrao TAF

44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66

Bairro
codMunicipio
Uf
CEP
Telefone
Atestado
codCNES
dtAtendimento
hrAtendimento
indInternacao
durTratamento
indAfastamento
descLesao
diagProvavel
codCID
Observao
Emitente
nomeEmitente
nrOC
ufOC
catOrigem
dtCatOrigem
nrCatOrigem

MODEL_CM3
MODEL_CM3
MODEL_CM3
MODEL_CM3
MODEL_CM3
MODEL_CM0
MODEL_CM0
MODEL_CM0
MODEL_CM0
MODEL_CM0
MODEL_CM0
MODEL_CM0
MODEL_CM0
MODEL_CM0
MODEL_CM0
MODEL_CM0
MODEL_CM0
MODEL_CM0
MODEL_CM0
MODEL_CM0

CM3_BAIRRO
CM3_CODMUN
CM3_UF
CM3_CEP
CM3_FONE

Uf, codMunicipio
uf

CM0_CODCNE
CM0_DTATEN
CM0_HRATEN
CM0_INDINT
CM0_DURTRA
CM0_INDAFA
CM0_DESLES
CM0_DIAPRO
CM0_CODCID
CM0_OBSERV
CM0_IDPROF
-

codCID

nrOC

CM0_DTCAT

Exemplo:
Aadd( aChave, {"D", "CM0_DTACID","2013-11-01", .F.} )
Aadd( aChave, {"C", "CM0_HRACID","10:00", .F. } )
Begin Transaction
//
//Funo para validar se a operao desejada pode ser realizada
//
If FTafVldOpe( 'CM0', 2, @nOpc, cFilEv, @aIncons, aChave, @oModel, 'TAFA257', cCmpsNoUpd )
//
//Quando se tratar de uma Excluso direta, preciso apenas realizar
//o Commit(), no sendo necessria nenhuma manuteno nas informaes
//
If nOpc <> 5
oModel:LoadValue( "MODEL_CM0", "CM0_FILIAL", CM0->CM0_FILIAL )
oModel:LoadValue( "MODEL_CM0", "CM0_HRACID","10:00")
//
//Parte Atingida
//
//
//Quando se trata de uma alterao, deleta-se todas as linhas do Grid
//
If nOpc == 4 .And. lParteAting
For nJ := 1 to oModel:GetModel( 'MODEL_CM1' ):Length()
oModel:GetModel( 'MODEL_CM1' ):GoLine(nJ)
oModel:GetModel( 'MODEL_CM1' ):DeleteLine()
Next nJ
EndIf
//
//Roda o XML parseado para gravar as novas informaes no GRID
//
For nJ := 1 to nPrtAting
oModel:GetModel( 'MODEL_CM1' ):LVALID
:= .T.

Verso 1.0

115

Integrao TAF
Ttulo do documento
If nOpc == 4 .Or. nJ > 1
oModel:GetModel( 'MODEL_CM1' ):AddLine()
EndIf
oModel:LoadValue( "MODEL_CM1", "CM1_CODPAR", 00001)
EndDo
//Agente Causador
//Quando se trata de uma alterao, deleta-se todas as linhas do Grid
//
If nOpc == 4 .And. lAgCausador
For nJ := 1 to oModel:GetModel( 'MODEL_CM2' ):Length()
oModel:GetModel( 'MODEL_CM2' ):GoLine(nJ)
oModel:GetModel( 'MODEL_CM2' ):DeleteLine()
Next nJ
EndIf
//
//Roda o XML parseado para gravar as novas informaes no GRID
//
For nJ := 1 to nAgCausador
oModel:GetModel( 'MODEL_CM2' ):LVALID
:= .T.
If nOpc == 4 .Or. nJ > 1
oModel:GetModel( 'MODEL_CM2' ):AddLine()
EndIf
oModel:LoadValue( "MODEL_CM2", "CM2_CODAGE", 0001 )
Next nJ
//
//Testemunhas

//
//
//Quando se trata de uma alterao, deleta-se todas as linhas do Grid
//
If nOpc == 4 .And. lTestemun
For nJ := 1 to oModel:GetModel( 'MODEL_CM3' ):Length()
oModel:GetModel( 'MODEL_CM3' ):GoLine(nJ)
oModel:GetModel( 'MODEL_CM3' ):DeleteLine()
Next nJ
EndIf
//
//Roda o XML parseado para gravar as novas informaes no GRID
//
For nJ := 1 to nTestemun
oModel:GetModel( 'MODEL_CM3' ):LVALID
:= .T.
If nOpc == 4 .Or. nJ > 1
oModel:GetModel( 'MODEL_CM3' ):AddLine()
EndIf
oModel:LoadValue( "MODEL_CM3", "CM3_NOMTES" , Gabriela)
oModel:LoadValue( "MODEL_CM3", "CM3_FONE"
, 955441100 )
Next nJ
EndIf
//
//Efetiva a operao desejada
//
FWFormCommit( oModel )
lRet := .T.
oModel:DeActivate()
EndIf
End Transaction

116

Verso 1.0

Integrao TAF

S-2280 Atestado de Sade Ocupacional


Rotina:
Model MVC:
Validao
Gerao XML
Regras

TAFA258.PRW
MODEL_C8B; MODEL_C9W; MODEL_C9X;MODEL_CRP;
TAF258VLD()
TAF258XML()
#
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43

TAG
eSocial
evtASO
Versao
Id
ideEvento
indRetificacao
nrRecibo
tpAmb
procEmi
indSegmento
verProc
ideEmpregador
tpInscricao
nrInscricao
ideVinculo
cpfTrab
nisTrab
Matricula
aso
dtAso
tpAso
resultadoAso
exame
dtExame
descExame
Risco
codAgente
monitBiologica
resultMonitoracao
codAgenteQuimico
matBiologico
codAnalise
expExcessiva
ordemExame
indResultado
dtIniMonitoracao
dtFimMonitoracao
Medico
nomeMedico
foneContato
CRM
nrCRM
ufCRM

Verso 1.0

Model
MODEL_C8B
MODEL_C8B
MODEL_C8B
MODEL_C8B
MODEL_C9W
MODEL_C9W
MODEL_C9X
MODEL_CRP
MODEL_CRP
MODEL_CRP
MODEL_CRP
MODEL_CRP
MODEL_CRP
MODEL_C8B
-

117

Campo

FGetIDInt()

C8B_FUNC

cpfTrab

C8B_DTASO
C8B_TPASO
C8B_RESULT
C9W_DTEXAM
C9W_DESEXM
C9X_CODAGE

codAgente

CRP_IDMBIO
CRP_EXPEXC
CRP_ORDEXA
CRP_INDRES
CRP_DINIMO
CRP_DFIMMO
C8B_CODMED
-

nrOC

Integrao TAF
Ttulo do documento
Exemplo:
Aadd( aChave, { "C", "C8B_FUNC", FGetIdInt( "cpfTrab", "", 37400956876" ), .T. } )
aAdd( aChave, { "D", "C8B_DTASO, "2013-11-07", .t. } )
Begin Transaction
If FTafVldOpe( "C8B", 2, @nOpc, cFilEv, @aIncons, aChave, @oModel, "TAFA258", cCmpsNoUpd )
oModel:LoadValue( "MODEL_C8B", "C8B_FILIAL", C8B->C8B_FILIAL )
oModel:LoadValue( "MODEL_C8B", "C8B_DTASO, "2013-11-07") )
//
Risco
If nOpc == 4
For nJ := 1 to oModel:GetModel( 'MODEL_C9X' ):Length()
oModel:GetModel( 'MODEL_C9X' ):GoLine(nJ)
oModel:GetModel( 'MODEL_C9X' ):DeleteLine()
Next nJ
EndIf
For nJ := 1 to nRiscos
oModel:GetModel( 'MODEL_C9X' ):LVALID
:= .T.
If nOpc == 4 .Or. nJ > 1
oModel:GetModel( 'MODEL_C9X' ):AddLine()
EndIf
oModel:LoadValue( "MODEL_C9X", "C9X_CODAGE" ,001)
Next nJ
//Exame
If nOpc == 4
For nJ := 1 to oModel:GetModel( 'MODEL_C9W' ):Length()
oModel:GetModel( 'MODEL_C9W' ):GoLine(nJ)
oModel:GetModel( 'MODEL_C9W' ):DeleteLine()
Next nJ
EndIf
For nJ := 1 to nExames
oModel:GetModel( 'MODEL_C9W' ):LVALID
:= .T.
If nOpc == 4 .Or. nJ > 1
oModel:GetModel( 'MODEL_C9W' ):AddLine()
EndIf
oModel:LoadValue( "MODEL_C9W", "C9W_DTEXAM",2013-10-10)
Next nJ
For nJ := 1 to nExames
oModel:GetModel( 'MODEL_C9W' ):LVALID
:= .T.
If nOpc == 4 .Or. nJ > 1
oModel:GetModel( 'MODEL_C9W' ):AddLine()
EndIf
cIdCUA := FGetIdInt( "codAgenteQuimico", "", 01)
cIdCUM := FGetIdInt( "codAnalise", "", 1.1)
cMatBio:= 1
("CUQ")->(DBSetOrder(3))
If ("CUQ")->(MsSeek(xFilial("CUQ")+ cIdCUA + cMatBio + cIdCUM ))
oModel:LoadValue( "MODEL_CRP", "CRP_IDMBIO", CUQ->CUQ_ID )
EndIf
oModel:LoadValue( "MODEL_CRP", "CRP_EXPEXC", "1")
oModel:LoadValue( "MODEL_CRP", "CRP_ORDEXA ", "1")
cIdCUA := ""
cIdCUM := ""
cMatBio:= ""
Next nJ
FWFormCommit( oModel )
lRet := .T.
oModel:DeActivate()
EndIf
End Transaction

118

Verso 1.0

Integrao TAF

S-2320 Afastamento Temporrio


Rotina:
Model MVC:
Validao
Gerao XML
Regras

TAFA261.PRW
MODEL_CM6
TAF261VLD()
TAF261XML()
#
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36

TAG
eSocial
evtAfastTemp
id
versao
ideEvento
indRetificacao
nrRecibo
tpAmb
procEmi
indSegmento
verProc
ideEmpregador
tpInscricao
nrInscricao
ideVinculo
cpfTrab
nisTrab
matricula
infoAfastamento
dtAfastamento
codMotAfastamento
tpAcidenteTransito
observao
infoAtestado
codCID
qtdDiasAfastamento
emitente
nomeEmitente
nrOC
ufOC
infoCessao
cnpjCessionario
infoOnus
infoMandadoSindical
cnpjSindicato
infoOnusRemuneracao

Verso 1.0

Model
MODEL_CM6
MODEL_CM6
MODEL_CM6
MODEL_CM6
MODEL_CM6
MODEL_CM6
MODEL_CM6
MODEL_CM6
MODEL_CM6
MODEL_CM6
MODEL_CM6
MODEL_CM6
MODEL_CM6

119

Campo

FGetIDInt()

CM6_FUNC

Matricula, cpfTrab

CM6_DTAFAS
CM6_MOTVAF
CM6_TPACID
CM6_OBSERV
CM6_CODCID
CM6_DIASAF

codCID

CM6_MEDICO

nrCRM

CM6_CNPJCE
CM6_INFOCE
CM6_CNPJSD
CM6_INFOSD

Integrao TAF
Ttulo do documento
Exemplo:
Aadd( aChave, {"C", "CM6_FUNC" , FGetIdInt( "cpfTrab", , "37400956876") , .T.} )
Aadd( aChave, {"C", "CM6_MOTVAF", FGetIdInt( "codMotAfastamento", "","0001" ), .T. } )
Begin Transaction
//
//Funo para validar se a operao desejada pode ser realizada
//
If FTafVldOpe( 'CM6', 2, @nOpc, cFilEv, @aIncons, aChave, @oModel, 'TAFA261', cCmpsNoUpd )
//
//Quando se tratar de uma Excluso direta, preciso apenas realizar
//o Commit(), no sendo necessria nenhuma manuteno nas informaes
//
If nOpc <> 5
oModel:LoadValue( "MODEL_CM6", "CM6_FUNC",
CM6->CM6_FUNC)
oModel:LoadValue( "MODEL_CM6", "CM6_DTAFAS", CM6->CM6_DTAFAS)
oModel:LoadValue( "MODEL_CM6", "CM6_MOTVAF", CM6->CM6_MOTVAF)
oModel:LoadValue( "MODEL_CM6", CM6_FUNC" , FGetIdInt( "cpfTrab",
"37400956876", "MAT0001") )
Next
EndIf
//
//Efetiva a operao desejada
//
FWFormCommit( oModel )
lRet := .T.
oModel:DeActivate()
EndIf
End Transaction

120

Verso 1.0

Integrao TAF

S-2325 Alterao do Motivo do Afastamento


Rotina:
Model MVC:
Validao
Gerao XML
Regras

TAFA281.PRW
MODEL_CRE
TAF281VLD()
TAF281XML()
#
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23

TAG
eSocial
evtAltMotAfast
id
versao
ideEvento
indRetificacao
nrRecibo
tpAmb
procEmi
indSegmento
verProc
ideEmpregador
tpInscricao
nrInscricao
ideVinculo
cpfTrab
nisTrab
Matricula
infoAltMotivo
dtAltMotivo
codMotivoAnterior
codMotAfastamento
indEfeitoRetroativo

Model
MODEL_CRE
MODEL_CRE
MODEL_CRE
MODEL_CRE
MODEL_CRE

Campo

FGetIDInt()

CRE_FUNC

Matricula,cpfTrab

CRE_DTALTM
CRE_AFASTA
CRE_MOTVAF
CRE_INDERT

cpfTrab,codMotivoAnterior
codMotAfastamento

Exemplo:
Aadd( aChave, {"C", "CRE_FUNC",FGetIdInt( "matricula", "cpfTrab","MAT0001" ,"37400956876 " ), .T.} )
Aadd( aChave, {"C", "CRE_MOTVAF", FGetIdInt( "codMotAfastamento", "","0001" ), .T. } )
Begin Transaction
//
//Funo para validar se a operao desejada pode ser realizada
//
If FTafVldOpe( 'CRE', 2, @nOpc, cFilEv, @aIncons, aChave, @oModel, 'TAFA281', cCmpsNoUpd )
//
//Quando se tratar de uma Excluso direta, preciso apenas realizar
//o Commit(), no sendo necessria nenhuma manuteno nas informaes
//
If nOpc <> 5
oModel:LoadValue( "MODEL_CRE", "CRE_FUNC",
CRE->CRE_FUNC)
oModel:LoadValue( "MODEL_CRE", "CRE_MOTVAF", CRE->CRE_MOTVAF)
EndIf
//

Verso 1.0

121

Integrao TAF
Ttulo do documento
//Efetiva a operao desejada
//
FWFormCommit( oModel )
lRet := .T.
oModel:DeActivate()
EndIf
End Transaction

122

Verso 1.0

Integrao TAF

S-2330 Retorno do Afastamento


Rotina:
Model MVC:
Validao
Gerao XML
Regras

TAFA291.PRW
MODEL_CRF
TAF291VLD()
TAF291XML()
#
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22

TAG
eSocial
evtAfastRetorno
id
versao
ideEvento
indRetificacao
nrRecibo
tpAmb
procEmi
indSegmento
verProc
ideEmpregador
tpInscricao
nrInscricao
ideVinculo
cpfTrab
nisTrab
Matricula
infoRetorno
dtRetorno
codMotAfastamento
Observao

Model
MODEL_CRF
MODEL_CRF
MODEL_CRF
MODEL_CRF

Campo

FGetIDInt()

CRF_FUNC
-

Matricula,cpfTrab

CRF_DTRETO
CRF_AFASTA
CRF_OBSRET

cpfTrab,codMotivoAnterior

Exemplo:
Aadd( aChave, { "C", "CRI_FUNC", FGetIdInt( "cpfTrab","matricula", "37400956876", "MAT0001" ), .T. } )
Aadd( aChave, { "D", "CRI_DTFIN", "2013-10-10", .F.} )
Aadd( aChave, { "C", "CRI_TPCOND","1", .F. } )
nIndice := 2
Begin Transaction
//Funo para validar se a operao desejada pode ser realizada
If FTafVldOpe( 'CRI', nIndice, @nOpc, cFilEv, @aIncons, aChave, @oModel, 'TAFA282', cCmpsNoUpd,1 )
//
//Quando se tratar de uma Excluso direta, preciso apenas realizar
//o Commit(), no sendo necessria nenhuma manuteno nas informaes
//
If nOpc <> 5
oModel:LoadValue( "MODEL_CRI", "CRI_FILIAL", CRI->CRI_FILIAL )
oModel:LoadValue( "MODEL_CRI", "CRI_TPCOND","1")
//
//Quando se trata de uma alterao, deleta-se todas as linhas do Grid
//
If (nOpc == 4)
For nJ := 1 to oModel:GetModel( 'MODEL_CRJ' ):Length()
oModel:GetModel( 'MODEL_CRJ' ):GoLine(nJ)
oModel:GetModel( 'MODEL_CRJ' ):DeleteLine()
Next nJ
EndIf
// CRJ

Verso 1.0

123

Integrao TAF
Ttulo do documento
For nCRJ := 1 to
If (nCRJ > 1) .Or. (nOpc == 4)
// necessrio atribuir LVALID para que permita o addline();
oModel:GetModel( "MODEL_CRJ" ):LVALID := .T.
oModel:GetModel( "MODEL_CRJ" ):AddLine()
EndIf
//Comea a salvar as informaes;
oModel:LoadValue( "MODEL_CRJ", "CRJ_CODAGE", FGetIdInt( "codAgente", "00001"))
Next nCRJ
EndIf
//
//Efetiva a operao desejada
//
FWFormCommit( oModel )
lRet := .T.
oModel:DeActivate()
EndIf
End Transaction

S-2340 Estabilidade Incio


Rotina:
Model MVC:
Validao
Gerao XML
Regras

TAFA260.PRW
MODEL_CM5
TAF260VLD()
TAF260XML()
#
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22

TAG
eSocial
evtEstabInicio
infEvento
idEvento
ideEvento
indRetificacao
nrRecibo
tpAmb
procEmi
indSegmento
verProc
ideEmpregador
tpInscricao
nrInscricao
ideVinculo
cpfTrab
nisTrab
matricula
infoEstabInicio
dtIniEstabilidade
codMotivoEstabilidade
observacao

Model
MODEL_CM5
MODEL_CM5
MODEL_CM5
MODEL_CM5

124

Campo

FGetIDInt()

CM5_TRABAL

cpfTrab,matricula

CM5_DTAFAS
CM5_CODEST
CM5_OBSERV

Verso 1.0

Integrao TAF

Exemplo:
Aadd( aChave, {"C", "CM5_TRABAL"
Aadd( aChave, {"D", "CM5_DTESTA"

, FGetIdInt( " cpfTrab", "matricula","37400956876","MAT0001"), .T.} )


, "2013-01-10", .T. } )

Begin Transaction
//
//Funo para validar se a operao desejada pode ser realizada
//
If FTafVldOpe( 'CM5', 2, @nOpc, cFilEv, @aIncons, aChave, @oModel, 'TAFA260', cCmpsNoUpd )
//
//Quando se tratar de uma Excluso direta, preciso apenas realizar
//o Commit(), no sendo necessria nenhuma manuteno nas informaes
//
If nOpc <> 5
oModel:LoadValue( "MODEL_CM5", "CM5_TRABAL", CM5->CM5_TRABAL)
oModel:LoadValue( "MODEL_CM5", "CM5_DTESTA", CM5->CM5_DTESTA)
EndIf
//
//Efetiva a operao desejada
//
FWFormCommit( oModel )
lRet := .T.
oModel:DeActivate()
EndIf
End Transaction

Verso 1.0

125

Integrao TAF
Ttulo do documento
S-2345 Estabilidade Trmino
Rotina:
Model MVC:
Validao
Gerao XML
Regras

TAFA287.PRW
MODEL_CRH
TAF287VLD()
TAF287XML()
#
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22

TAG
eSocial
evtEstabTermino
infEvento
idEvento
ideEvento
indRetificacao
nrRecibo
tpAmb
procEmi
indSegmento
verProc
ideEmpregador
tpInscricao
nrInscricao
ideVinculo
cpfTrab
nisTrab
matricula
infoEstabTermino
dtFimEstabilidade
codMotivoEstabilidade
observacao

Model
MODEL_CRH
MODEL_CRH
MODEL_CRH
MODEL_CRH

Campo

FGetIDInt()

CRH_TRABAL

cpfTrab,matricula

CRH_DTFNES
CRH_CODEST
CRH_OBSERV

Exemplo:
Aadd( aChave, {"C", "CRH_TRABAL"
Aadd( aChave, {"C", "CRH_INIEST"

, FGetIdInt( " cpfTrab", "matricula","37400956876","MAT0001"), .T.} )


, FGetIdInt( "IniEst", "",cIdTrabal,cCodEst,.F. ), .T. } )

Begin Transaction
//
//Funo para validar se a operao desejada pode ser realizada
//
If FTafVldOpe( 'CRH', 2, @nOpc, cFilEv, @aIncons, aChave, @oModel, 'TAFA287', cCmpsNoUpd )
//Quando se tratar de uma Excluso direta, preciso apenas realizar
//o Commit(), no sendo necessria nenhuma manuteno nas informaes
If nOpc <> 5
oModel:LoadValue( "MODEL_CRH", "CRH_TRABAL", CRH->CRH_TRABAL)
oModel:LoadValue( "MODEL_CRH", "CRH_INIEST", CRH->CRH_INIEST)
EndIf
//
//Efetiva a operao desejada
//
FWFormCommit( oModel )
lRet := .T.
oModel:DeActivate()
EndIf
End Transaction

126

Verso 1.0

Integrao TAF

S-2360 Condio Diferenciada de Trabalho Incio


Rotina:
Model MVC:
Validao
Gerao XML
Regras

TAFA264.PRW
MODEL_CM9; MODEL_CMA; MODEL_CMB
TAF264VLD()
TAF264XML()
#
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35

TAG
eSocial
evtCDTInicio
id
versao
ideEvento
indRetificacao
nrRecibo
tpAmb
procEmi
indSegmento
verProc
ideEmpregador
tpInscricao
nrInscricao
ideVinculo
cpfTrab
nisTrab
matricula
infoCDTInicio
dtIniCondicao
tpCondicao
fatoresRisco
codAgente
intensidConcentracao
tecMedicao
utilizacaoEPC
utilizacaoEPI
epi
caEPI
requisitosEPI
medProtecao
condFuncionamento
prazoValidade
periodicTroca
Higienizao

Model
MODEL_CM9
MODEL_CM9
MODEL_CM9
MODEL_CMA
MODEL_CMA
MODEL_CMA
MODEL_CMA
MODEL_CMA
MODEL_CMB
MODEL_CM9
MODEL_CM9
MODEL_CM9
MODEL_CM9
MODEL_CM9

Campo

FGetIDInt()

CM9_FUNC

cpfTrab, matricula

CM9_DTINI
CM9_TPCOND

tpCondicao

CMA_CODAGE
CMA_INTCON
CMA_TECMED
CMA_UTLEPC
CMA_UTLEPI

codAgente

CMB_CAEPI
CM9_MEDPRT
CM9_CNDFUN
CM9_PRZVLD
CM9_PERTRC
CM9_HIGIEN

Exemplo:
Aadd( aChave,
Aadd( aChave,
Aadd( aChave,
Aadd( aChave,
nIndice := 2

{
{
{
{

"C",
"C",
"D",
"C",

"CM9_NOMEVE", S2360, .T. } )


"CM9_FUNC", FGetIdInt( "cpfTrab","matricula","37400956876","MAT00001"), .T. } )
"CM9_DTINI", "2013-10-10", .F.} )
"CM9_TPCOND","1", .F. } )

Verso 1.0

127

Integrao TAF
Ttulo do documento
Begin Transaction
//Funo para validar se a operao desejada pode ser realizada
If FTafVldOpe( 'CM9', nIndice, @nOpc, cFilEv, @aIncons, aChave, @oModel, 'TAFA264', cCmpsNoUpd,1 )
//
//Quando se tratar de uma Excluso direta, preciso apenas realizar
//o Commit(), no sendo necessria nenhuma manuteno nas informaes
//
If nOpc <> 5
oModel:LoadValue( "MODEL_CM9", "CM9_FILIAL", CM9->CM9_FILIAL )
//Grava o tipo de registro, indicando se condio diferenciada de trabalho - incio /
trmino.
oModel:LoadValue( "MODEL_CM9", "CM9_NOMEVE", S2360)
oModel:LoadValue( "MODEL_CM9", "CM9_TPCOND","1")
//
//Quando se trata de uma alterao deleta-se todas as linhas do Grid
//
If (nOpc == 4)
For nJ := 1 to oModel:GetModel( 'MODEL_CMA' ):Length()
oModel:GetModel( 'MODEL_CMA' ):GoLine(nJ)
oModel:GetModel( 'MODEL_CMA' ):DeleteLine()
Next nJ
EndIf
For nJ := 1 to nCMA
If (nJ > 1) .Or. (nOpc == 4)
// necessrio atribuir LVALID para que permita o addline();
oModel:GetModel( "MODEL_CMA" ):LVALID := .T.
oModel:GetModel( "MODEL_CMA" ):AddLine()
EndIf
//Comea a salvar as informaes;
oModel:LoadValue( "MODEL_CMA", "CMA_UTLEPI",S)
// CMB
If nOpc == 4
For nI := 1 to oModel:GetModel( 'MODEL_CMB' ):Length()
oModel:GetModel( 'MODEL_CMB' ):GoLine(nJ)
oModel:GetModel( 'MODEL_CMB' ):DeleteLine()
Next nI
EndIf
For nI := 1 to nCMB
If (nCMB > 1) .Or. (nOpc == 4)
oModel:GetModel( "MODEL_CMB" ):LVALID := .T.
oModel:GetModel( "MODEL_CMB" ):AddLine()
EndIf
oModel:LoadValue( "MODEL_CMB", "CMB_CAEPI", 0000001 )
Next nI
Next nJ
EndIf
//
//Efetiva a operao desejada
//
FWFormCommit( oModel )
lRet := .T.
oModel:DeActivate()
EndIf
End Transaction

128

Verso 1.0

Integrao TAF

S-2365 Condio Diferenciada de Trabalho Trmino


Rotina:
Model MVC:
Validao
Gerao XML
Regras

TAFA282.PRW
MODEL_CRI; MODEL_CRJ
TAF282VLD()
TAF282XML()
#
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23

TAG
eSocial
evtCDTTermino
id
versao
ideEvento
indRetificacao
nrRecibo
tpAmb
procEmi
indSegmento
verProc
ideEmpregador
tpInscricao
nrInscricao
ideVinculo
cpfTrab
nisTrab
matricula
infoCDTTermino
dtFimCondicao
tpCondicao
fatoresRisco
codAgente

Model
MODEL_CRI
MODEL_CRI
MODEL_CRI
MODEL_CRJ

Campo

FGetIDInt()

CRI_FUNC

cpfTrab, matricula

CRI_DTFIN
CRI_TPCOND

tpCondicao

CRJ_CODAGE

codAgente

Exemplo:
Aadd( aChave, { "C", "CRI_FUNC", FGetIdInt( "cpfTrab","matricula","37400956876","MAT00001"), .T. } )
Aadd( aChave, { "D", "CRI_DTINI", "2013-10-10", .F.} )
Aadd( aChave, { "C", "CRI_TPCOND","1", .F. } )
nIndice := 2
Begin Transaction
//Funcao para validar se a operao desejada pode ser realizada
If FTafVldOpe( 'CRI', nIndice, @nOpc, cFilEv, @aIncons, aChave, @oModel, 'TAFA282', cCmpsNoUpd,1 )
//
//Quando se tratar de uma Excluso direta, preciso apenas realizar
//o Commit(), no sendo necessria nenhuma manuteno nas informaes
//
If nOpc <> 5
oModel:LoadValue( "MODEL_CRI", "CRI_FILIAL", CRI->CRI_FILIAL )
oModel:LoadValue( "MODEL_CRI", "CRI_TPCOND","2")
//
//Quando se trata de uma alterao deleta-se: todas as linhas do Grid
//
If (nOpc == 4)
For nJ := 1 to oModel:GetModel( 'MODEL_CRJ' ):Length()

Verso 1.0

129

Integrao TAF
Ttulo do documento
oModel:GetModel( 'MODEL_CRJ' ):GoLine(nJ)
oModel:GetModel( 'MODEL_CRJ' ):DeleteLine()
Next nJ
EndIf
/* Esse layout, possui registros 'filhos'(fatoresRisco) e 'netos'(epi). Ento
realizado o controle para salvar a quantidade que estiverem no xml para os 'filhos' e seus respectivos
'netos'.*/
// CRJ
For nJ := 1 to nCMA
If (nJ > 1) .Or. (nOpc == 4)
// necessrio atribuir LVALID para que permita o addline();
oModel:GetModel( "MODEL_CRJ" ):LVALID := .T.
oModel:GetModel( "MODEL_CRJ" ):AddLine()
EndIf
//Comea a salvar as informaes;
oModel:LoadValue( "MODEL_CRJ", "CRJ_CODAGE",

FGetIdInt( "codAgente",

,"0001") )
Next nJ
EndIf
//
//Efetiva a operao desejada
//
FWFormCommit( oModel )
lRet := .T.
oModel:DeActivate()
EndIf
End Transaction

130

Verso 1.0

Integrao TAF

S-2400 Aviso Prvio


Rotina:
Model MVC:
Validao
Gerao XML
Regras

TAFA263.PRW
MODEL_CM8
TAF263VLD()
TAF263XML()
#
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23

TAG
eSocial
evtAvisoPrevio
id
versao
ideEvento
indRetificacao
nrRecibo
tpAmb
procEmi
indSegmento
verProc
ideEmpregador
tpInscricao
nrInscricao
ideVinculo
cpfTrab
nisTrab
Matricula
infoAvisoPrevio
dtAvisoPrevio
dtProjAfastamento
tpAvisoPrevio
Observao

Model
MODEL_CM8
MODEL_CM8
MODEL_CM8
MODEL_CM8
MODEL_CM8

Campo

FGetIDInt()

CM8_TRABAL
-

Matricula,cpfTrab

CM8_DTAVIS
CM8_DTAFAS
CM8_TPAVIS
CM8_OBSERV

Exemplo:
Aadd( aChave, { "C", "CM8_TRABAL"
aAdd( aChave, { "D", "CM8_DTAVIS"

, FGetIdInt( "cpfTrab", "", "37400956876" ), .T. } )


, "2013-10-10", .T. } )

Begin Transaction
If FTafVldOpe( "CM8", 2, @nOpc, cFilEv, @aIncons, aChave, @oModel, "TAFA263", cCmpsNoUpd )
oModel:LoadValue( "MODEL_CM8", "CM8_FILIAL", CM8->CM8_FILIAL )
oModel:LoadValue( "MODEL_CM8", CM8_DTAVIS, 2013-10-10 )
/*
Efetiva a operao desejada
*/
FWFormCommit( oModel )
lRet := .T.
oModel:DeActivate()
EndIf
End Transaction

Verso 1.0

131

Integrao TAF
Ttulo do documento
S-2405 Cancelamento do Aviso Prvio
Rotina:
Model MVC:
Validao
Gerao XML
Regras

TAFA286.PRW
MODEL_CRG
TAF286VLD()
TAF286XML()
#
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22

TAG
evtCancAvisoPrevio
Verso
infEvento
idEvento
ideEvento
indRetificacao
nrRecibo
tpAmb
procEmi
indSegmento
verProc
ideEmpregador
tpInscricao
nrInscricao
ideVinculo
cpfTrab
nisTrab
Matricula
infoCancAvisoPrevio
dtCancAvisoPrevio
Observao
motivoCancAvisoPrevio

Model
MODEL_CRG
MODEL_CRG
MODEL_CRG
MODEL_CRG

Campo

FGetIDInt()

CRG_TRABAL
-

dtCancAvisoPrevio

CRG_DTCANC
CRF_OBSRET
CRG_MOTCAN

Exemplo:
Aadd( aChave, { 'C', 'CRG_TRABAL', FGetIdInt( "cpfTrab", "", "37400956876" ), .T. } )
aAdd( aChave, { 'C', 'CRG_IDAVIS', FGetIdInt( "dtCancAvisoPrevio", "", cIdFun,,.F.), .T. } )
Begin Transaction
If FTafVldOpe( 'CRG', 2, @nOpc, cFilEv, @aIncons, aChave, @oModel, 'TAFA286', cCmpsNoUpd )
oModel:LoadValue( "MODEL_CRG", "CRG_FILIAL", CRG->CRG_FILIAL )
oModel:LoadValue( "MODEL_CRG", CRG_OBSERV", Observacao..)
Efetiva a operao desejada
FWFormCommit( oModel )
lRet := .T.
oModel:DeActivate()
EndIf
End Transaction

132

Verso 1.0

Integrao TAF

S-2600 Trabalhador Sem Vnculo de Emprego - Incio


Rotina:
Model MVC:
Validao
Gerao XML
Regras

TAFA279.PRW
MODEL_C9V
TAF279VLD()
TAF279XML()
#
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43

TAG
evtTSVInicio
Verso
infEvento
idEvento
ideEvento
indRetificacao
nrRecibo
tpAmb
procEmi
indSegmento
verProc
ideEmpregador
tpInscricao
nrInscricao
Trabalhador
cpfTrab
nisTrab
nomeTrab
sexo
racaCor
estadoCivil
grauInstrucao
Nascimento
dtNascto
codMunicipio
Uf
paisNascto
paisNacionalidade
nomeMae
nomePai
Documentos
CTPS
nrCtps
serieCtps
ufCtps
RIC
nrRIC
orgaoEmissor
dtExpedicao
RG
nrRg
orgaoEmissor
dtExpedicao

Verso 1.0

Model
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V

133

Campo

C9V_CPF
C9V_NIS
C9V_NOME
C9V_SEXO
C9V_RCCOR
C9V_ESTCIV
C9V_GRINST
C9V_DTNASC
C9V_CODMUN
C9V_CODUF
C9V_CODPAI
C9V_PAINAC
C9V_NOMMAE
C9V_NOMPAI

C9V_NRCTPS
C9V_SERCTP
C9V_UFCTPS
C9V_NRRIC
C9V_OREMRI
C9V_DTEXRI
C9V_NRRG
C9V_OREMRG
C9V_DTEMRG

FGetIDInt()

Integrao TAF
Ttulo do documento
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94

RNE
nrRne
orgaoEmissor
dtExpedicao
OC
nrOc
orgaoEmissor
dtExpedicao
dtValidade
CNH
nrCnh
orgaoEmissor
dtExpedicao
dtValidade
Endereo
Brasil
tpLogradouro
descLogradouro
nrLogradouro
Complemento
Bairro
CEP
codMunicipio
Uf
Exterior
paisResidencia
descLogradouro
nrLogradouro
Complemento
Bairro
nomeCidade
codPostal
infoCasaPropria
residenciaPropria
recursoFGTS
trabEstrangeiro
dtChegada
dtNaturalizacao
casadoBr
filhosBr
infBancarias
Banco
Agencia
tpContaBancaria
nrContaBancaria
infoDeficiencia
defMotora
defVisual
defAuditiva
Reabilitado
Observao

MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V

134

C9V_NRRNE
C9V_OREMRN
C9V_DTEMRN
C9V_NUMOC
C9V_OREMOC
C9V_DTEXOC
C9V_DTVLOC
C9V_NRCNH
C9V_OREMCN
C9V_DTEXCN
C9V_DTVLCN

C9V_TPLOGR
C9V_LOGRAD
C9V_NRLOG
C9V_COMLOG
C9V_BAIRRO
C9V_CEP
C9V_MUN
C9V_UF
C9V_PAIS
C9V_LOGRAD
C9V_NRLOG
C9V_COMLOG
C9V_BAIRRO
C9V_NOMCID
C9V_CEP
C9V_RESPRP
C9V_RECFGT
C9V_DTCHEG
C9V_DTNATU
C9V_CASBRA
C9V_FILBRA
C9V_BANCO
C9V_AGENC
C9V_TPCTBA
C9V_NRCTBA
C9V_DEFMOT
C9V_DEFVIS
C9V_DEFAUD
C9V_REABIL
C9V_OBSDEF

Verso 1.0

Integrao TAF

95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145

Dependente
tpDep
nomeDep
dtNascto
cpfDep
depIRRF
depSF
contato
fonePrincipal
foneAlternativo
emailPrincipal
emailAlternativo
infoTSVInicio
trabalhadorAvulso
dtInicio
codCateg
FGTS
optanteFGTS
dtOpcaoFGTS
contribIndividual
codCateg
dtInicio
codCargo
codFuncao
FGTS
optanteFGTS
dtOpcaoFGTS
servPubIndConselho
dtInicio
codCateg
codCargo
codFuncao
dirigenteSindical
dtInicio
codCateg
categOrigem
cnpjOrigem
dtAdmissaoOrigem
matricOrigem
FGTS
optanteFGTS
dtOpcaoFGTS
Estagirio
dtInicio
codCateg
natEstagio
nivEstagio
areaAtuacao
nrApolice
vlrBolsa

Verso 1.0

MODEL_C9Y
MODEL_C9Y
MODEL_C9Y
MODEL_C9Y
MODEL_C9Y
MODEL_C9Y
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V

135

C9Y_TPDEP
C9Y_NOMDEP
C9Y_DTNASC
C9Y_CPFDEP
C9Y_DEPIRF
C9Y_DEPSFA
C9V_FONPRC
C9V_FONALT
C9V_EMAILP
C9V_EMAILA

C9V_DTINAV
C9V_CATAV

codCateg

C9V_OPFGAV
C9V_DTFGAV
C9V_CATCI
C9V_DTINCI
C9V_CARCI
C9V_FUNCI

codCateg
codCargo
codFuncao

C9V_OPFGCI
C9V_DTFGCI
C9V_DTINSP
C9V_CATSP
C9V_CARSP
C9V_FUNSP

codCateg
codCargo
codFuncao

C9V_DTINDS
C9V_CATDS

codCateg

C9V_CATODS
C9V_CNPJDS
C9V_DTADDS
C9V_MATODS

categOrigem

C9V_OPFGDS
C9V_DTFGDS
C9V_DTINES
C9V_CATES
C9V_NATEES
C9V_NIVEES
C9V_AREAES
C9V_NRAPES
C9V_VLBLES

codCateg

Integrao TAF
Ttulo do documento
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167

dtPrevistaTermino
instEnsino
cnpjInstEnsino
nomeRazao
descLogradouro
nrLogradouro
Bairro
CEP
codMunicipio
Uf
ageIntegracao
cnpjAgenteIntegracao
nomeRazao
descLogradouro
nrLogradouro
Bairro
CEP
codMunicipio
Uf
coordEstagio
cpfCoordenador
nomeCoordenador

MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V
MODEL_C9V

C9V_DTTEES
C9V_CNPEES
C9V_NOMEES
C9V_LOGEES
C9V_NLGEES
C9V_BAREES
C9V_CEPES
C9V_MUNES
C9V_UFES
C9V_CNPAES
C9V_NOMAES
C9V_LOGAES
C9V_NLGAES
C9V_BARAES
C9V_CEPAES
C9V_MUNAES
C9V_UFAES
C9V_CPFCES
C9V_NOMCES

Uf,codMunicipio
uf

Uf,codMunicipio
uf

Exemplo:
aAdd( aChave, {"C", "C9V_CPF" , "37400956876"

, .F. } )

Begin Transaction
//
//Funo para validar se a operao desejada pode ser realizada
//
If FTafVldOpe( "C9V", 2, @nOpc, cFilEv, @aIncons, aChave, @oModel, "TAFA279", cCmpsNoUpd )
If nOpc == 3
oModel:LoadValue( "MODEL_C9V", "C9V_NOMEVE", "S2600" )
EndIf
//
//Quando se tratar de uma Excluso direta, preciso apenas realizar
//o Commit(), no sendo necessria nenhuma manuteno nas informaes
//
If nOpc <> 5
oModel:LoadValue( "MODEL_C9V", "C9V_FILIAL", C9V->C9V_FILIAL )
oModel:LoadValue( "MODEL_C9V", "C9V_DTINAV" , "2013-01-01" )
//
//Quando se trata de uma alterao, deleta-se todas as linhas do Grid
//
If nOpc == 4 .and. lExisteDep
For nJ := 1 to oModel:GetModel( "MODEL_C9Y" ):Length()
oModel:GetModel( "MODEL_C9Y" ):GoLine(nJ)
oModel:GetModel( "MODEL_C9Y" ):DeleteLine()
Next nJ
EndIf
//
//Roda o XML parseado para gravar as novas informaes no GRID
//
For nJ := 1 to nDependente
If nOpc == 4 .or. nJ > 1
oModel:GetModel( "MODEL_C9Y" ):lValid:= .T.

136

Verso 1.0

Integrao TAF

oModel:GetModel( "MODEL_C9Y" ):AddLine()


EndIf
oModel:LoadValue( "MODEL_C9Y", "C9Y_IDDEP" , StrZero(nJ,6) )
oModel:LoadValue( "MODEL_C9Y", "C9Y_NOMDEP", Fernanda)
Next nJ
EndIf
//
//Efetiva a operao desejada
//
FWFormCommit( oModel )
lRet := .T.
oModel:DeActivate()
EndIf
End Transaction

Verso 1.0

137

Integrao TAF
Ttulo do documento
S-2620 Trabalhador Sem Vnculo de Emprego Alterao Contratual
Rotina:
Model MVC:
Validao
Gerao XML
Regras

TAFA277.PRW
MODEL_CRC
TAF277VLD()
TAF277XML()
#
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43

TAG
evtTSVAltContratual
Verso
infEvento
idEvento
ideEvento
indRetificacao
nrRecibo
tpAmb
procEmi
indSegmento
verProc
ideEmpregador
tpInscricao
nrInscricao
Trabalhador
cpfTrab
nisTrab
dtAlteracao
contribIndividual
codCateg
codCargo
codFuncao
servPubIndConselho
codCargo
codFuncao
Estagirio
natEstagio
nivEstagio
areaAtuacao
nrApolice
vlrBolsa
dtPrevistaTermino
instEnsino
cnpjInstRazao
nomeRazao
descLogradouro
nrLogradouro
Bairro
CEP
codMunicipio
Uf
ageIntegracao
cnpjAgenteIntegracao

Model
MODEL_CRC
MODEL_CRC
MODEL_CRC
MODEL_CRC
MODEL_CRC
MODEL_CRC
MODEL_CRC
MODEL_CRC
MODEL_CRC
MODEL_CRC
MODEL_CRC
MODEL_CRC
MODEL_CRC
MODEL_CRC
MODEL_CRC
MODEL_CRC
MODEL_CRC
MODEL_CRC
MODEL_CRC
MODEL_CRC
MODEL_CRC
MODEL_CRC

138

Campo

FGetIDInt()

CRC_CODTRA
CRC_DALTSV

Matricula,cpfTrab

CRC_CATCI
CRC_CARCI
CRC_FUNCI

codCateg
codCargo
codFuncao

CRC_CARSP
CRC_FUNSP

codCargo
codFuncao

CRC_NATEES
CRC_NIVEES
CRC_AREAES
CRC_NRAPES
CRC_VLBLES
CRC_DTTEES
CRC_CNPEES
CRC_NOMEES
CRC_LOGEES
CRC_NLGEES
CRC_BAREES
CRC_CEPES
CRC_MUNES
CRC_UFES

Uf,codMunicipio
uf

CRC_CNPAES

Verso 1.0

Integrao TAF

44
45
46
47
48
49
50
51
52
53

nomeRazao
descLogradouro
nrLogradouro
Bairro
CEP
codMunicipio
Uf
coordEstagio
cpfCoordenador
nomeCoordenador

MODEL_CRC
MODEL_CRC
MODEL_CRC
MODEL_CRC
MODEL_CRC
MODEL_CRC
MODEL_CRC
MODEL_CRC
MODEL_CRC

CRC_NOMAES
CRC_LOGAES
CRC_NLGAES
CRC_BARAES
CRC_CEPAES
CRC_MUNAES
CRC_UFAES

Uf,codMunicipio
uf

CRC_CPFCES
CRC_NOMCES

Exemplo:
aAdd( aChave, {"C", "CRC_CODTRA", FGetIdInt( "cpfTrab" , "", "37400956876"
aAdd( aChave, {"D", "CRC_DALTSV", "2013-10-10" , .T. } )

), .T. } )

Begin Transaction
//
//Funcao para validar se a operao desejada pode ser realizada
//
If FTafVldOpe( "CRC", 2, @nOpc, cFilEv, @aIncons, aChave, @oModel, "TAFA277", cCmpsNoUpd )
//Quando se tratar de uma Excluso direta, preciso apenas realizar
//o Commit(), no sendo necessria nenhuma manuteno nas informaes
If nOpc <> 5
oModel:LoadValue( "MODEL_CRC", "CRC_FILIAL", C9V->C9V_FILIAL )
oModel:LoadValue( "MODEL_CRC", "CRC_NOMAES", "Instituicao ")
EndIf
//
//Efetiva a operao desejada
//
FWFormCommit( oModel )
lRet := .T.
oModel:DeActivate()
EndIf
End Transaction

Verso 1.0

139

Integrao TAF
Ttulo do documento
S-2680 Trabalhador Sem Vnculo de Emprego Trmino
Rotina:
Model MVC:
Validao
Gerao XML
Regras

TAFA280.PRW
MODEL_CRD, MODEL_CMK
TAF280VLD()
TAF280XML()
#
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43

TAG
evtTSVTermino
Verso
infEvento
idEvento
ideEvento
indRetificacao
nrRecibo
tpAmb
procEmi
indSegmento
verProc
ideEmpregador
tpInscricao
nrInscricao
Trabalhador
cpfTrab
nisTrab
trabalhadorAvulso
dtTermino
contribIndividual
codCateg
dtTermino
tpDesligDiretorNaoEmpregado
verbasRescisorias
bcCP
bcIRRF
bcFGTS
bcFGTSVerbasIndeniz
bcFgtsMesAnt
descCP
vlrProventos
vlrDescontos
vlrLiquido
itensRemuneracao
codRubrica
qtdRubrica
vlrRubrica
servPubIndConselho
dtTermino
dirigenteSindical
dtTermino
Estagirio
dtTermino

Model
MODEL_CRD
MODEL_CRD
MODEL_CRD
MODEL_CRD
MODEL_CRD
MODEL_CRD
MODEL_CRD
MODEL_CRD
MODEL_CRD
MODEL_CRD
MODEL_CRD
MODEL_CRD
MODEL_CRD
MODEL_CRD
MODEL_CMK
MODEL_CMK
MODEL_CMK
MODEL_CRD
MODEL_CRD
MODEL_CRD

140

Campo

FGetIDInt()

CRD_CODTRA
-

Matricula,cpfTrab

CRD_DTERAV
CRD_CATCI
CRD_DTERCI
CRD_TPDDCI

codCateg

CRD_BCCPCI
CRD_BCIRCI
CRD_BCFGCI
CRD_BCVICI
CRD_BCMACI
CRD_VDCPCI
CRD_VPRVCI
CRD_VDESCI
CRD_VLIQCI
CMK_CODRUB
CMK_QTDRUB
CMK_VLRRUB

codRubrica

CRD_DTTESP
CRD_DTTEDS
CRD_DTTEES

Verso 1.0

Integrao TAF

Exemplo:
aAdd( aChave, {"C", "CRD_CODTRA", FGetIdInt( "cpfTrab"

, "", "37400956876"

), .T. } )

Begin Transaction
//
//Funo para validar se a operao desejada pode ser realizada
//
If FTafVldOpe( "CRD", 2, @nOpc, cFilEv, @aIncons, aChave, @oModel, "TAFA280", cCmpsNoUpd )
//Quando se tratar de uma Excluso direta, preciso apenas realizar
//o Commit(), no sendo necessria nenhuma manuteno nas informaes
If nOpc <> 5
oModel:LoadValue( "MODEL_CRD", "CRD_FILIAL", CRD->CRD_FILIAL )
oModel:LoadValue( "MODEL_CRD", "CRD_DTTESP", "2013-10-10" )
//
//Quando se trata de uma alterao, deleta-se todas as linhas do Grid
//
If nOpc == 4 .and. lItensRem
For nJ := 1 to oModel:GetModel( "MODEL_CMK" ):Length()
oModel:GetModel( "MODEL_CMK" ):GoLine(nJ)
oModel:GetModel( "MODEL_CMK" ):DeleteLine()
Next nJ
EndIf
//
//Roda o XML parseado para gravar as novas informaes no GRID
//
For nJ := 1 to nCMK
If nOpc == 4 .or. nJ > 1
oModel:GetModel( "MODEL_CMK" ):lValid:= .T.
oModel:GetModel( "MODEL_CMK" ):AddLine()
EndIf
oModel:LoadValue( "MODEL_CMK", "CMK_QTDRUB",15)
Next nJ
EndIf
//
//Efetiva a operao desejada
//
FWFormCommit( oModel )
lRet := .T.
oModel:DeActivate()
EndIf
End Transaction

Verso 1.0

141

Integrao TAF
Ttulo do documento
S-2800 - Desligamento
Rotina:
Model MVC:
Validao
Gerao XML
Regras

TAFA266.PRW
MODEL_CMD
TAF266VLD()
TAF266XML()
#
01
02
03
03
04
05
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43

TAG
eSocial
evtDesligamento
id
versao
ideEvento
indRetificacao
nrRecibo
tpAmb
procEmi
indSegmento
verProc
ideEmpregador
tpInscricao
nrInscricao
ideVinculo
cpfTrab
nisTrab
matricula
infoDesligamento
motivoDesligamento
dtDesligamento
indPagtoAPI
dtTerminoAPI
nrAtestadoObito
nrProcTrabalhista
bcFgtsMesAnt
observacao
sucessaoVinculo
cnpjSucessora
verbasRescisorias
bcCP
bcIRRF
bcFGTS
bcFGTSVerbasIndeniz
descCP
vlrProventos
vlrDescontos
vlrLiquido
itemRemuneracao
codRubrica
qtdRubrica
vlrRubrica
infoAgenteNocivo

Model
MODEL_CMD
MODEL_CMD
MODEL_CMD
MODEL_CMD
MODEL_CMD
MODEL_CMD
MODEL_CMD
MODEL_CMD
MODEL_CMD
MODEL_CMD
MODEL_CMD
MODEL_CMD
MODEL_CMD
MODEL_CMD
MODEL_CMD
MODEL_CMD
MODEL_CMD
MODEL_CMD
MODEL_CME
MODEL_CME
MODEL_CME
-

142

Campo

FGetIDInt()

CMD_FUNC
-

cpfTrab, matricula

CMD_MOTDES
CMD_DTDESL
CMD_INDPAG
CMD_TERAPI
CMD_NRATES
CMD_NRPROC
CMD_FGTSME
CMD_OBSERV

motivoDesligamento

CMD_CNPJSU
CMD_BCCP
CMD_BCIRRF
CMD_BCFGTS
CMD_BCVERB
CMD_DESCCP
CMD_VLPROV
CMD_VLDESC
CMD_VLLIQU
CME_CODRUB
CME_QTDRUB
CME_VLRRUB

codRubrica

Verso 1.0

Integrao TAF

44
45
46
47
48
49
50
51
52
53
54
55

grauExp
aso
dtAso
exame
dtExame
descExame
medico
nomeMedico
foneContato
crm
nrCRM
ufCRM

MODEL_CMD
MODEL_CMD
MODEL_CMD
-

CMD_GRAUEX
CMD_CODASO
CMD_CODASO

dtAso

Exemplo:
aAdd(
aAdd(
aAdd(
aAdd(

aChave,
aChave,
aChave,
aChave,

{"C",
{"C",
{"D",
{"C",

"CMD_FUNC" ,FGetIdInt( "cpfTrab" , "","37400956876" ), .T. } )


"CMD_MOTDES", "0001"
, .T. } )
"CMD_DTDESL", "2013-11-05"
, .T. } )
"CMD_INDPAG", "1"
, .T. } )

Begin Transaction
//
//Funo para validar se a operao desejada pode ser realizada
//
If FTafVldOpe( "CMD", 2, @nOpc, cFilEv, @aIncons, aChave, @oModel, "TAFA266", cCmpsNoUpd )
//Quando se tratar de uma Excluso direta, preciso apenas realizar
//o Commit(), no sendo necessria nenhuma manuteno nas informaes
If nOpc <> 5
oModel:LoadValue( "MODEL_CMD", "CMD_FILIAL", CMD->CMD_FILIAL )
oModel:LoadValue( "MODEL_CMD", "CMD_DTDESL", "2013-11-05")
//
//Quando se trata de uma alterao, deleta-se todas as linhas do Grid
//
If nOpc == 4 .and. lItenRem
For nJ := 1 to oModel:GetModel( "MODEL_CME" ):Length()
oModel:GetModel( "MODEL_CME" ):GoLine(nJ)
oModel:GetModel( "MODEL_CME" ):DeleteLine()
Next nJ
EndIf
For nJ := 1 to nCME
If nOpc == 4 .or. nJ > 1
oModel:GetModel( "MODEL_CME" ):lValid:= .T.
oModel:GetModel( "MODEL_CME" ):AddLine()
EndIf
oModel:LoadValue( "MODEL_CME", "CME_QTDRUB", "01")
Next nJ
EndIf
//
//Efetiva a operao desejada
//
FWFormCommit( oModel )
lRet := .T.
oModel:DeActivate()
EndIf
End Transaction

Verso 1.0

143

Integrao TAF
Ttulo do documento
S-2820 Reintegrao
Rotina:
Model MVC:
Validao
Gerao XML
Regras

TAFA267.PRW
MODEL_CMF
TAF267VLD()
TAF267XML()
#
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

TAG
evtReintegracao
Verso
infEvento
idEvento
ideEvento
indRetificacao
nrRecibo
tpAmb
procEmi
indSegmento
verProc
ideEmpregador
tpInscricao
nrInscricao
Trabalhador
cpfTrab
nisTrab
Matricula
infoReintegracao
tpReintegracao
nrProcJud
nrLeiAnistia
dtEfeito
dtEfeitoRetorno

Model
MODEL_CMF
MODEL_CMF
MODEL_CMF
MODEL_CMF
MODEL_CMF
MODEL_CMF

Campo

FGetIDInt()

CMF_FUNC
-

Matricula,cpfTrab

CMF_TPREIN
CMF_NRPROC
CMF_NRLEIJ
CMF_DTEFEI
CMF_DTRET

tpProcesso,nrProcesso

Exemplo:
Aadd( aChave, {"C", "CRH_TRABAL" , "000001" , .T.} )
Begin Transaction
//
//Funo para validar se a operao desejada pode ser realizada
//
If FTafVldOpe( 'CRH', 2, @nOpc, cFilEv, @aIncons, aChave, @oModel, 'TAFA287', cCmpsNoUpd )
//
//Carrega array com os campos De/Para de gravao das informaes
//
aRules := TAF287Rul()
//
//Quando se tratar de uma Excluso direta, preciso apenas realizar
//o Commit(), no sendo necessria nenhuma manuteno nas informaes
//
If nOpc <> 5
oModel:LoadValue( "MODEL_CRH", "CRH_TRABAL", CRH->CRH_TRABAL)
//oModel:LoadValue( "MODEL_CRH", "CRH_INIEST", CRH->CRH_INIEST)
//
//Roda o aRules para gravar as informaes

144

Verso 1.0

Integrao TAF

//
For nlI := 1 To Len( aRules )
oModel:LoadValue( "MODEL_CRH", aRules[ nlI, 01 ], FTafGetVal( aRules[
nlI, 02 ], aRules[nlI, 03], aRules[nlI, 04], @aIncons, .F. ) )
Next
EndIf
//
//Efetiva a operao desejada
//
FWFormCommit( oModel )
lRet := .T.
oModel:DeActivate()
EndIf
End Transaction

Verso 1.0

145

Integrao TAF
Ttulo do documento
S-2900 Excluso de Eventos
Rotina:
Model MVC:
Validao
Gerao XML
Regras

TAFA269.PRW
MODEL_CMJ
TAF269VLD()
TAF269XML()
#
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17

TAG
evtExclusao
Verso
infEvento
idEvento
ideEvento
tpAmb
procEmi
indSegmento
verProc
ideEmpregador
tpInscricao
nrInscricao
infoExclusao
tpEvento
nrReciboEvento
cpfTrab
nisTrab

Model
MODEL_CMJ
MODEL_CMJ
MODEL_CMJ
-

Campo

CMJ_TPEVEN
CMJ_NRRECI
CMJ_TRABAL
-

FGetIDInt()

Matricula,cpfTrab

Exemplo:
Aadd( aChave, { "C", "CMJ_TPEVEN", "1", .F. } )
aAdd( aChave, { "C", "CMJ_TRABAL", FGetIdInt("cpfTrab","",
Begin Transaction
If FTafVldOpe( "CMJ", 2,
oModel:LoadValue(
oModel:LoadValue(
oModel:LoadValue(
EndIf
End Transaction

"37400956876") , .T. } )

@nOpc, cFilEv, @aIncons, aChave, @oModel, "TAFA269", cCmpsNoUpd )


"MODEL_CMJ", "CMJ_TPEVEN", "1")
"MODEL_CMJ", "CMJ_ NRRECI ", "12165165465")
"MODEL_CMJ", "CMJ_FILIAL", CMJ->CMJ_FILIAL )

146

Verso 1.0

Integrao TAF

FUNES DE UTILIZAO GENRICA


1.1

FGetIdInt (cFieldLay1,cFieldLay2,cInfo1,cInfo2, lIdChave, aInfComp)

Descrio da funo:
Funo responsvel por retornar os IDs para gravao nas tabelas do TAF durante a integrao.
Parmetros:
Ordem
01
02
03
04
05

Parmetro
cFieldLay1
cFieldLay2
cInfo1
cInfo2
lIdChave

Tipo
Caracter
Caracter
Caracter
Caracter
Lgico

06

aInfComp

Array

Descrio
Primeiro nome do Campo do Layout do eSocial a que se refere informao
Segundo nome do Campo do Layout do eSocial a que se refere informao
Informao referente ao primeiro campo informado (chave)
Informao referente ao segundo campo informado (chave)
Indica se os valores indicados sao TAGs ou valores ja para execucao do Seek (
.T. = Tag , .F. = Valor )
Array com os campos a mais da chave que devem ser incluidos na tabela
auxiliar

Lista de Opes:
Minemnico1

Minemnico2

cpfTrab

codMotivoAnt
erior

IniEst
cpfBeneficiario

tpProcesso

NrProcesso|
nrProcJud

tpInscricao

nrInscricao

classTrib
codAgenteQuimico
codAnalise
codAgente
tpDespesa
codMotivoEstabilid
ade
cpfTrab
banco

Verso 1.0

Descrio
Afastamento
Temporrio
(CM6)
Estabilidade
Inicial (CM5)
Beneficirio
(C9Z)
Processo
referenciado
E-Social
(Tabela C93)
Estabelecimen
to (C92)
Classificao
Tributria
(C8D)
"CUA"
"CUM"
Cdigo Agente
(Tabela C98)
"CUV"
CUR

Exemplo
FGetIdInt("cpfTrab","","78887020230", .F.)
FGetIdInt("IniEst", "","000001", ,.F. )
FGetIdInt("cpfBeneficiario","","78887020230","",.F.)

FGetIdInt("tpProcesso","nrProcesso","J","123456")
FGetIdInt("tpInscricao","nrInscricao","F","66610634327",.F.
)
FGetIdInt("classTrib","","123","",.F.)
FGetIdInt("codAgenteQuimico","","123","",.F.)
FGetIdInt("codAnalise","","123","",.F.)
FGetIdInt("classTrib","","123","",.F.)
FGetIdInt("tpDespesa","","123","",.F.)
FGetIdInt("codMotivoEstabilidade","","123","",.F.)

Trabalhador
(C9V)
Bancos (C1V)

147

FGetIdInt("cpfTrab","","37400956872","",.F.)
FGetIdInt("banco","","123","",.F.)

Integrao TAF
Ttulo do documento
Categoria de
Trabalhador
(C87)
Cargos (C8V)
Funes (C8X)
Lotaes (C99)

catTrabalhador|cod
Categ|categOrigem
codCargo
codFuncao
codLotacao
codJornadaSegSext
a|codJornadaSab|c
odJornadaSeg|codJ
ornadaTer|codJorn
adaQua|codJornad
aQui|codJornadaSe
x|codJornadaSab|c
odJornadaDom|cod
Jornada

Horrios/Turn
os de Trabalho
(C90)

dtAso

tpDep
tpDesligDiretorNao
Empregado
codRubrica
motivoDesligament
o

grauExp

tpContrib
uf

codMunicipio

uf|ufCtps
paisNascto|paisNac
ionalidade|paisResi
dencia
codCBO

fpas

codTerceiros

Atestado de
Sade
Ocupacional
(C8B)
Tipo de
Dependente
(CMI)
Mot deslig.
Diretor sem
Vnculo (CML)
Rubricas (C8R)
Motivos de
Desligamento
(C8O)
Grau
Exposio
Agentes
Nocivos (C88)
Tipo de
Contribuio
(C8H)
Municpios
(C07)
Unidades da
Federao
(C09)
Pases Banco
Central/SISCO
MEX (C08)
Cdigo
Brasileiro de
Ocupao
(C8Z)
Cod.Aliq.FPAS
/Terceiros
(C8A)

148

FGetIdInt("catTrabalhador","","1","",.F.)
FGetIdInt("codCargo","","01","",.F.)
FGetIdInt("codFuncao","","01","",.F.)
FGetIdInt("codLotacao","","01","",.F.)

FGetIdInt("codJornadaSegSexta","","01","",.F.)

FGetIdInt("dtAso","","000001","01/01/2013",.F.)

FGetIdInt("tpDep","","01","",.F.)

FGetIdInt("tpDesligDiretorNaoEmpregado","","01","",.F.)
FGetIdInt("codRubrica","","01","",.F.)
FGetIdInt("motivoDesligamento","","01","",.F.)

FGetIdInt("grauExp","","01","",.F.)

FGetIdInt("tpContrib","","01","",.F.)
FGetIdInt("uf","codMunicipio","SP","00001",.F.)
FGetIdInt("ufCtps","","SP","",.F.)

FGetIdInt("paisNascto","","00001","",.F.)

FGetIdInt("codCBO ","","01","",.F.)

FGetIdInt("fpas","codTerceiros","01","001",.F.)

Verso 1.0

Integrao TAF

tpLogradouro
tpLotacao
idVara
indDecisao
natRubrica
codIncidCP
codIncidIRRF
codParteAtingida
codAgenteCausado
r
nrOC
codSitGeradora
codMotAfastament
o
codCID
nomeMedico
grauInstrucao
tpEvento
codCID

tpEstabelecimento
tpServico
dtCancAvisoPrevio
cpfResponsavel
natJuridica
tpCondicao
tpIsencao

Verso 1.0

Tipo de
Logradouro
(C06)
Tipo de
Lotao (C8F)
Cadastro de
Varas (C9A)
Indicativo de
Deciso (C8S)
Natureza da
Rubrica (C89)
Incidenc. Trib.
Prev. Soc.
(C8T)
Incidenc. Trib.
IRRF. (C8U)
Parte Atingida
(C8I)
Agente
causador (C8J)
Mdico (C87)
Situao
Geradora
(C8J)
Motivo
Acidente
(C8N)
Motivo
Acidente
(C8N)
Nome do
mdico (CM7)
Grau de
Instrucao
(CMH)
C8E
Motivo
Acidente
(C8N)
Tabela de
Estabelecimen
tos (C92)
Tipo servico ESocial (C8C)
Aviso Prvio
(CM8)
Responsvel
Informao
(C9F)
C8P
CUN
CMY

149

FGetIdInt("tpLogradouro","","01","",.F.)
FGetIdInt("tpLotacao","","01","",.F.)
FGetIdInt("idVara","","000001","",.F.)
FGetIdInt("indDecisao","","01","",.F.)
FGetIdInt("natRubrica","","01","",.F.)
FGetIdInt("codIncidCP","","01","",.F.)
FGetIdInt("codIncidIRRF","","01","",.F.)
FGetIdInt("codParteAtingida","","01","",.F.)
FGetIdInt("codAgenteCausador","","01","",.F.)
FGetIdInt("nrOC","","SP12345","",.F.)
FGetIdInt("codSitGeradora","","01","",.F.)

FGetIdInt("codMotAfastamento","","01","",.F.)

FGetIdInt("codCID","","01","",.F.)
FGetIdInt("nomeMedico","","Carlos Eduardo","",.F.)
FGetIdInt("grauInstrucao","","01","",.F.)
FGetIdInt("tpEvento","","123","",.F.)
FGetIdInt("codCID","","01","",.F.)
FGetIdInt("tpEstabelecimento","J","66228823000187","",.F.
)
FGetIdInt("tpServico","","01","",.F.)
FGetIdInt("dtCancAvisoPrevio","","000001","",.F.)
FGetIdInt("cpfResponsavel","","78887020230","",.F.)
FGetIdInt("natJuridica","","123","",.F.)
FGetIdInt("tpCondicao","","123","",.F.)
FGetIdInt("tpIsencao","","123","",.F.)

Integrao TAF
Ttulo do documento
tpRendimento
formaTributacao
paisResidencia
codRendimento
relFontePagadora
relDependencia
tpProcRRA
tpInscAdvogado
nrProcJud
cpfTrab

nrProcRRA
nrInscAdvoga
do

CUC
CUD
C08
CUF
"CUB"
CMI
C93

FGetIdInt("tpRendimento","","123","",.F.)
FGetIdInt("formaTributacao","","123","",.F.)
FGetIdInt("paisResidencia","","123","",.F.)
FGetIdInt("codRendimento","","123","",.F.)
FGetIdInt("relFontePagadora","","123","",.F.)
FGetIdInt("relDependencia","","123","",.F.)
FGetIdInt("tpProcRRA","","123","",.F.)
FGetIdInt("tpInscAdvogado", nrInscAdvogado
","1","32148",.F.)
FGetIdInt("nrProcJud","","123","",.F.)
FGetIdInt("cpfTrab"," matricula","37400956871","001",.F.)

CMW
C93

matricula

Retorno:
Ordem

Retorno

01

cId

Tipo
Caracter

Descrio
Retorna o ID do registro.
Caso no encontre, retorna a string ERR + Cdigo passado por parmetro

1.2 FTafVldOpe (cAlias,nInd,nOpc,cFilEv,aIncons,aChave, oModel,cNomModel, cCmpsNoUpd, nIndIdVer,


lRuleEvCad, aNewData, cMatTrab)
Descrio da funo:
Funo que valida se a operao desejada pode ser realizada. Retornando os campos obrigatrios de controle
da tabela (Filial, ID, Verso Anterior)
Parmetros:
Ordem
01

Parmetro
cAlias

Tipo
Caracter

02

nInd

Numrico

03

nOpc

Numrico

04
05

cFilEv
aIncons

Caracter
Array

06

aChave

Array

Descrio
Alias a ser gravado
ndice de busca da chave nica do registro ( De acordo com o Layout do
E-Social. )
Operao a ser realizada:
3 - Incluso
4 - Alterao
5 Excluso
Esta varivel modificada pela funo TAFRegStat(). Podendo ser:
4 Alterao Registros no transmitidos
5 Excluso Registros no transmitidos
6 Alterao Registros j transmitidos
7 Excluso Registros j transmitidos
9 Contm inconsistncias.
Filial de Origem do ERP, sempre deve ser informada.
Array para gravao de inconsistncias encontradas
Chave de busca do registro na tabela, sendo que:
Posio 1 do Array: Tipo da informao
Posio 2 do Array: Nome do Campo da tabela
Posio 3 do Array: Valor referente ao campo informado na posio 2.

150

Verso 1.0

Integrao TAF

07
08

oModel
cNomModel

Nil
Caracter

09

cCmpsNoUpd

Caracter

10
11

nIndIdVer
lRuleEvCad

12

aNewData

Nmerico
Lgico
Array

13

cMatTrab

Retorno:
Ordem
01

Posio 4 do Array: .T.


Objeto a ser criado para manutenir as informaes
Nome do Fonte referente ao Model
Nome dos campos que no devem ser replicados no novo registro no
caso de uma excluso de um registro j transmitido ao RET.
ndice referente chave Filial+ID+Versao da tabela.
Indica se o registro se refere aos eventos cadastrais
Conteudo da tag novaValidade para operacoes da alteracao de eventos
cadastrais
Matrcula do funcionrio, quando no for evento de funcionrio ignorar
esse parmetro.

Caracter

Retorno

Tipo

Descrio

lValido

Lgico

Indica se a operao desejada pode ser realizada ou no.

Ateno para os parmetros que so passados com @referncia. Necessrio para que sejam
alimentadas atravs da funo.

1.3 FTafGetFil (cSeekFil,aIncons)


Descrio da funo:
Funo que tem por finalidade retornar a filial para onde as informaes de integrao sero importadas.
Parmetros:
Ordem
01
02

Retorno:
Ordem
01

1.4

Parmetro
cSeekFil
aIncons

Tipo
Caracter
Array

Descrio
Filial a ser verificada a existncia
Array contendo as inconsistncias encontradas.

Retorno

Tipo

Descrio

cFilTAF

Caracter

Indica a filial para onde as informaes de integrao sero importadas.

xFunGetVer()

Descrio da funo:
Funo responsvel por retornar a verso do registro no TAF.

Verso 1.0

151

Integrao TAF
Ttulo do documento
Retorno:
Ordem

01

Retorno

cVersao

Tipo

Descrio
Retorno da verso do registro, sendo AAAAMMDDHHMMSS
A Ano
M Ms
D Dia
H Hora
M Minuto
S Segundo

Caracter

Importante:
Para todos os registros do E-Social a chave nica das tabelas a mesma indicada no Layout do Fisco, com
exceo do registro S-1000 - Informaes do Empregador onde a chave nica a filial de origem das
informaes, conforme abaixo:

Registro

Chave nica do Layout E-Social

Tam.Chave

S-1000

Filial +Filial de Origem das informaes

S-1010

Filial + CodRubrica + iniValidade + fimValidade

46

S-1020

Filial + CodLotacao + iniValidade + fimValidade

46

S-1030

Filial + CodCargo + iniValidade + fimValidade

46

S-1040

Filial + CodFuncao + iniValidade + fimValidade

46

S-1050

Filial + CodJornada + iniValidade + fimValidade

46

S-1060

Filial + TpInscricao + nrInscricao + iniValidade + fimValidade

31

S-1070

Filial + TpProcesso + nrProcesso + iniValidade + fimValidade

37

S-1080

Filial + CnpjOpPortuario + iniValidade + fimValidade

30

S-1100

Filial + indApuracao+perApuracao

S-1200

Filial + indApuracao+perApuracao+cpfTrab

19

S-1300

Filial + indApuracao+perApuracao

S-1310

Filial + indApuracao+perApuracao

S-1320

Filial + indApuracao+perApuracao

S-1330

Filial + indApuracao+perApuracao

S-1340

Filial + indApuracao+perApuracao

S-1350

Filial + indApuracao+perApuracao

152

Verso 1.0

Integrao TAF

S-1360

Filial + indApuracao+perApuracao

S-1370

Filial + indApuracao+perApuracao

S-1380

Filial + indApuracao+perApuracao

S-1390

Filial + indApuracao+perApuracao

S-1399

Filial + indApuracao+perApuracao

S-1400

Filial + indApuracao+perApuracao

S-1800

Filial + dtApuracao

10

S-2100

Filial + Matricula+cpfTrab

41

S-2200

Filial + Matricula+cpfTrab

41

S-2220

Filial + cpfTrab+dtAlteracao

19

S-2240

Filial + Matricula+cpfTrab+dtAlteracao

49

S-2260

Filial + cpfTrab+dtAcidente+horaAcidente

24

S-2280

Filial + Matricula+cpfTrab+dtAso

49

S-2320

Filial + Matricula+cpfTrab+codMotAfastamento

43

S-2325

Filial + Matricula+cpfTrab+codMotAfastamento

43

S-2330

Filial + Matricula+cpfTrab+codMotAfastamento

43

S-2340

Filial + Matricula+cpfTrab+dtIniEstabilidade

49

S-2345

Filial + Matricula+cpfTrab+dtFimEstabilidade

49

S-2360

Filial + Matricula+cpfTrab+dtIniCondicao+tpCondicao

51

S-2365

Filial + Matricula+cpfTrab+tpCondicao+dtFimCondicao

51

S-2400

Filial + Matricula+cpfTrab+dtAvisoPrevio

49

S-2405

Filial + Matricula+cpfTrab+dtCancAvisoPrevio

49

S-2600

Filial + Matricula+cpfTrab

40

S-2620

Filial + cpfTrab+dtAlteracao

19

S-2680

Filial + cpfTrab+dtTermino

19

S-2800

Filial + Matricula+cpfTrab+motivoDesligamento+dtDesligamento+indPagtoAPI

52

S-2820

Filial + Matricula+cpfTrab+tpReintegracao+nrProcJud

48

S-2900

Filial + tpEvento+cpfTrab

17

O controle de transao de responsabilidade do ERP de origem. Sempre antes de iniciar o processo de


integrao imprescindvel que o controle esteja ativo para evitar inconsistncias na base do TAF.

Verso 1.0

153

Integrao TAF
Ttulo do documento
1.5 xFunRetPrt (cTpEvento,cTafKey)
Descrio da funo:
Esta funo tem como objetivo retornar o nmero do protocolo gerado ao RET e o status do registro solicitado
dentro do TAF.
Parmetros:
Ordem
01

Parmetro
cTpEvento

Tipo
Caracter

02

cTafKey

Caracter

Retorno:
Ordem

01

Descrio
Tipo do evento, por exemplo, S-2260
A chave de busca na tabela do Evento conforme informado neste
manual.

Retorno

Tipo

Descrio
O retorno desta funo um Array com a estrutura conforme abaixo:

aRet

Array

aRet[ 01 ]
Indica se a chave informada foi encontrada
aRet[ 02, 01 ] Indica o nmero do Protocolo encontrado
aRet[ 02, 02 ] Indica o status do registro encontrado

1.6 TafPerOpen ( cFilAnt, cMes, cAno )


Descrio da funo:
Esta funo tem como objetivo retornar se existe perodo em aberto de acordo com os parmetros
informados.
Parmetros:
Ordem
01
02
03
Retorno:
Ordem

01

Parmetro
cFilAnt
cMes
cAno

Tipo
Caracter
Caracter
Caracter

Descrio
Filial do TAF onde ser realizada a consulta.
Ms de referncia do perodo a ser consultado ( Formato MM )
Ano de referncia do perodo a ser consultado ( Formato AAAA )

Retorno

Tipo

aRet

Array

Descrio
Caso o retorno do array seja vazio significa que no existe perodo em
aberto para os dados informados nos parmetros da funo, pode ser
que exista o perodo em aberto no evento S-1300 porm o mesmo
perodo j foi encerrado pelo evento S-1399.
No caso de existir perodos em aberto o retorno do Array ser realizado
conforme abaixo:
aRet[ 01 ] Indica qual o tipo do perodo que foi encontrado, podendo
ser:
1 = Folha de Pagamento Mensal
2=Folha de Decimo Terceiro Salario

154

Verso 1.0

Integrao TAF

aRet[ 02 ] Indica o Status do perodo encontrado, podendo ser:


0=Reg.Valido
1=Reg.Invalido
2=Reg.Transmitido
3=Reg.Transmitido com inconsistncia
4=Reg.Transmitido valido
9=Em Processamento

7. Controle de Verso

O grupo TOTVS representado por suas marcas ir administrar as demandas de evoluo dos layouts e demais
ajustes, acordando junto aos solicitantes o prazo de liberao de release.
Todas as evolues programadas devero ser discutidas e aprovadas pelas marcas antes do incio do
desenvolvimento e somente sero desenvolvidas em caso de concordncia das marcas e alinhamento com as
diretivas definidas pelo Comit de Integrao TOTVS.

Verso 1.0

155

Integrao TAF
Ttulo do documento

8. Fluxo das Informaes

Integrao de eventos Tabela (S-1010 a S-1080) utilizando conceito de controle sobre as datas de validade.

156

Verso 1.0

Integrao TAF

Integrao de eventos Tabela (S-1010 S-1080) no utilizando conceito de controle sobre as datas de
validade.

Verso 1.0

157

Integrao TAF
Ttulo do documento

158

Verso 1.0

Integrao TAF

9. Como fazer

Integrao Manual:

Para executar a integrao manual acesse a opo de menu: Miscelnea/Esocial/Integrao Esocial.

Os parmetros Data Base ERP? e Alias ERP? referem-se apenas integrao ST1 x ST2, indicando a
localizao da tabela TAFST1 de domnio do ERP.

Integrao via Agendamento (Schedule).

Primeiramente, preciso configurar o arquivo appserver.ini como segue:


[OnStart]
jobs=FWSCHDQUEUE,FWSCHDMANAG_XXX
RefreshRate=NNN
[FWSCHDMANAG]
Main=FWSCHDMANAG
Environment=XXX
[FWSCHDQUEUE]
Main=FWSCHDQUEUE
Environment=XXX
[FWSCHDMANAG_XXX]
Main=FWSCHDMANAG
Environment=XXX

Verso 1.0

159

Integrao TAF
Ttulo do documento
Onde:
- XXX nome do ambiente.
- NNN o intervalo de tempo (em segundos) de atualizao dos dados sobre a execuo do(s) job(s).
Em seguida, deve-se configurar o Schedule no Configurador (SIGACFG) aecssando a opo de menu Ambiente/
Schedule/Schedule.

O primeiro passo incluir um Agente:

160

Verso 1.0

Integrao TAF

Em seguida, preciso criar um Agendamento para cada rotina (job) que ser executada:

Verso 1.0

161

Integrao TAF
Ttulo do documento

Obs.: preencher o campo Rotina com TAFAINTEG(par1, par2, par3), onde:


par1 o cdigo do job a ser executado.
par2 o TOP ALIAS para a base do ERP.
par3 o Database do ERP.

162

Verso 1.0