| Totvs custom tabs box items |
|---|
| default | yes |
|---|
| referencia | visao |
|---|
| Desenvolvimento da interface no POUI e das APIs, convergente nas 3 linhas para realizar o controle e gestão dos períodos onde foram retificados em Janeiro do ano (infoIRComplem/perAnt) . Importante Requisito para a rotina funcionar:
|
| Totvs custom tabs box items |
|---|
| Image Added
| | Totvs custom tabs box items |
|---|
| | Totvs custom tabs box items |
|---|
| | Totvs custom tabs box items |
|---|
|
| default | no |
|---|
referencia | dicionario |
| Totvs custom tabs box items |
|---|
| Este detalhamento tem como objetivo registrar os endpoints da interface da integração da tela desenvolvida utilizando PO-UI. | Deck of Cards |
|---|
| | Card |
|---|
| id | IntegAhgoraLista |
|---|
| label | Integração Funcionário |
|---|
| Objetivo: Busca dos dados para listagem dos funcionários e envio dos funcionários selecionados para o back-end. Tipo de requisição: GET/POST Endpoint: /api/rh/v1/RefificaPerAnt Get: Query Params: Nome | Descrição | Tipo | Obrigatório | Exemplo | page | Número da página | number | Sim | 1 | pageSize | Tamanho da página | number | Sim | 20 | yearRectif | Ano retificação | number | Sim | Maior ou igual a 2026 | registrationNumber | CPF | number | Não | 59303411099 | branchCode | Filial (Multi Valores separados por vírgula) | string | Não | “D MG 01,D MG 02” |
Estrutura de Retorno: Campo | Tipo | Exemplo | id (obrigatório) | string | "2026-59303411099" | yearRectif(obrigatório) | number | 2026 | companyCode | string | "1" | branchCode(obrigatório) | string | “02” | type | string | "Funcionário" ou "Prestador" ou "Funcionário/Prestador" | registrationNumber | string | "59303411099" | name | string | "Nome do funcionário" | enableMonths | array | [1,5,6,7,9,12]
| Months | array | [5,9,12] |
Exemplo de Requisição: GET: api/rh/v1/RefificaPerAnt?page=1&pageSize=20&yearRectif=2026 Se atentar com a paginação. | Expandir |
|---|
| { "items": [ { "id": "2026-59303411099", "yearRectif": 2026, "companyCode": "1", "branchCode": "1", "type": "Funcionário", "registrationNumber": "59303411099", "name": "Admitido Antes da Retificação e Ativo", "enableMonths": [ 1, 2, 3, 6, 7, 8, 10, 11 ], "months": [ 3, 6, 7, 8, 10, 11 ] }, { "id": "2026-59429296027", "yearRectif": 2026, "companyCode": "1", "branchCode": "1", "type": "Funcionário", "registrationNumber": "59429296027", "name": "teste paginacao 8", "enableMonths": [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 ], "months": [ 3, 5 ] } ], "hasNext": false, "total": 2 } |
Post: /api/rh/v1/RefificaPerAnt Nome | Descrição | Tipo | Obrigatório | Exemplo | id (obrigatório) | Código interno do funcionário | string | Sim | "2026-59303411099" | companyCode | Empresa ou Coligada | string | Sim | "10" | branchCode | Estabelecimento ou Filial | string | Sim | "1" | months | Meses retificados | array | Sim | [1,3,5,9,12] |
A partir do filtro realizado, ao clicar editar e confirmar, os dados serão enviados para o back-end. | Expandir |
|---|
| { "items": [ { "id":"2026-59303411099", "companyCode":"10", "branchCode":"11", "months":[1,2,6,8,12] } ] }Para o retorno de erro, seguir a estrutura abaixo. Campo | Tipo | code | number | message | string | detailedMessage | string | type | string (“error”, “warning”, “success”) |
| Expandir |
|---|
| { "code": 500, "detailedMessage": "", "message": "Internal Server Error", "type": "error" } |
| Card |
|---|
| | Totvs custom tabs box items |
|---|
| default | no |
|---|
| referencia | filtros |
|---|
| | Deck of Cards |
|---|
| | Card |
|---|
| Objetivo: Listagem de Filiais Tipo de requisição: GET Endpoint: /api/rh/v1/ahgora/branches Query Params: Campo | Descrição | Tipo | Obrigatório | Exemplo | page | Número da página | number | SIM | 1 | pageSize | Tamanho da página | numer | SIM | 50 | filter | Campo automático do lookup. Pode filtrar o código ou nome da filial | string | Não | “Filial X” |
Estrutura de Retorno: Para conseguirmos abranger todas as áreas, utilizamos a nomenclatura abaixo. Campo | Tipo | branchCode | string | branchName | string |
Exemplo de Requisição: GET: api/rh/v1/ahgora/branches?filter=&page=1&pageSize=50 | Expandir |
|---|
| { "items": [ { "branchCode": "01", "branchName": "Matriz" }, { "branchCode": "02", "branchName": "Suporte-Suporte" }, { "branchCode": "03", "branchName": "Santos" }, { "branchCode": "04", "branchName": "São Vicente" } ], "hasNext": false } |
É possível também digitar no campo sem entrar no lookup para buscar uma filial. Get: api/rh/v1/ahgora/branches/01 | Expandir |
|---|
| { "items": [ { "branchCode": "01", "branchName": "Matriz" } ] } |
Para o retorno de erro, seguir a estrutura abaixo. Campo | Tipo | code | number | message | string | detailedMessage | string | type | string (“error”, “warning”, “success”) |
| Expandir |
|---|
| { "code": 500, "detailedMessage": "", "message": "Internal Server Error", "type": "error" } |
| Card |
|---|
| id | matricula |
|---|
| label | Matrícula |
|---|
| Objetivo: Listagem das Matrículas Tipo de requisição: GET Endpoint: /api/rh/v1/ahgora/matricula Query Params: Campo | Descrição | Tipo | Obrigatório | Exemplo | page | Número da página | number | SIM | 1 | pageSize | Tamanho da página | numer | SIM | 50 | filter | Campo automático do lookup. Pode filtrar a matrícula | string | Não | “Matrícula X” | branchCode | Código da filial que está no filtro | string | Não | 04 |
Obs* O filtro da filial é obrigatório, ele vai estar no filtro da matrícula caso queira retornar apenas as matrículas das filiais selecionadas. Estrutura de Retorno: Para conseguirmos abranger todas as áreas, utilizamos a nomenclatura abaixo. Campo | Tipo | branchCode | string | branchName | string |
Exemplo de Requisição: GET: api/rh/v1/ahgora/matricula?filter=&page=1&pageSize=50&branchCode=04 | Expandir |
|---|
| Como passei a filial 04 que está no filtro, optei por carregar apenas matrículas dessa filial { "items": [ { "filMat": "04", "matCode": "000001", "matName": "John Doe" }, { "filMat": "04", "matCode": "152062", "matName": "Jane Doe" } ], "hasNext": false } |
Para o retorno de erro, seguir a estrutura abaixo. Campo | Tipo | code | number | message | string | detailedMessage | string | type | string (“error”, “warning”, “success”) |
| Expandir |
|---|
| { "code": 500, "detailedMessage": "", "message": "Internal Server Error", "type": "error" } |
| Card |
|---|
| Objetivo: Listagem dos Turnos Tipo de requisição: GET Endpoint: /api/rh/v1/ahgora/turno Query Params: Campo | Descrição | Tipo | Obrigatório | Exemplo | page | Número da página | number | SIM | 1 | pageSize | Tamanho da página | numer | SIM | 50 | filter | Campo automático do lookup. Pode filtrar o turno | string | Não | “Turno X” | branchCode | Código da filial que está no filtro | string | Não | 02 |
Obs* O filtro da filial é obrigatório, ele vai estar no filtro do turno caso queira retornar apenas os turnos das filiais selecionadas. Estrutura de Retorno: Campo | Tipo | filTurno | string | turnoCode | string | turnoDesc | string |
Exemplo de Requisição: GET: api/rh/v1/ahgora/turno?filter=&page=1&pageSize=50&branchCode=02 | Expandir |
|---|
| Como passei a filial 02 que está no filtro, optei por carregar apenas os turnos dessa filial { "items": [ { "filTurno": "02", "turnoCode": "001", "turnoDesc": "001" } ], "hasNext": false } |
Para o retorno de erro, seguir a estrutura abaixo. Campo | Tipo | code | number | message | string | detailedMessage | string | type | string (“error”, “warning”, “success”) |
| Expandir |
|---|
| { "code": 500, "detailedMessage": "", "message": "Internal Server Error", "type": "error" } |
| Card |
|---|
| id | ccusto |
|---|
| label | Centro de Custo |
|---|
| Objetivo: Listagem dos Centros de Custo Tipo de requisição: GET Endpoint: /api/rh/v1/ahgora/ccusto Query Params: Campo | Descrição | Tipo | Obrigatório | Exemplo | page | Número da página | number | SIM | 1 | pageSize | Tamanho da página | numer | SIM | 50 | filter | Campo automático do lookup. Pode filtrar o C.Custo | string | Não | “CCusto X” | branchCode | Código da filial que está no filtro | string | Não | 02 |
Obs* O filtro da filial é obrigatório, ele vai estar no filtro do centro de custo caso queira retornar apenas os centros de custo das filiais selecionadas. Estrutura de Retorno: Campo | Tipo | filCC | string | codCC | string | ccDesc | string |
Exemplo de Requisição: GET: api/rh/v1/ahgora/ccusto?filter=&page=1&pageSize=10&branchCode=02 | Expandir |
|---|
| Como a tabela de Centro de Custo é compartilhada, mesmo com a filial, eu retorno todos { "items": [ { "filCC": " ", "codCC": "000000003", "ccDesc": "03" }, { "filCC": " ", "codCC": "000000010", "ccDesc": "010" }, { "filCC": " ", "codCC": "000000022", "ccDesc": "22" }, { "filCC": " ", "codCC": "00001 ", "ccDesc": "TESTE TITULO" }, { "filCC": " ", "codCC": "012 ", "ccDesc": "CONC 012" } ], "hasNext": true } |
Para o retorno de erro, seguir a estrutura abaixo. Campo | Tipo | code | number | message | string | detailedMessage | string | type | string (“error”, “warning”, “success”) |
| Expandir |
|---|
| { "code": 500, "detailedMessage": "", "message": "Internal Server Error", "type": "error" } |
| Card |
|---|
| Objetivo: Listagem das Funções Tipo de requisição: GET Endpoint: /api/rh/v1/ahgora/funcao Query Params: Campo | Descrição | Tipo | Obrigatório | Exemplo | page | Número da página | number | SIM | 1 | pageSize | Tamanho da página | numer | SIM | 50 | filter | Campo automático do lookup. Pode filtrar o C.Custo | string | Não | “Funcao X” | branchCode | Código da filial que está no filtro | string | Não | 02 |
Obs* O filtro da filial é obrigatório, ele vai estar no filtro da função caso queira retornar apenas as funções das filiais selecionadas. Estrutura de Retorno: Campo | Tipo | filFuncao | string | codFuncao | string | funcaoDesc | string |
Exemplo de Requisição: GET: api/rh/v1/ahgora/funcao?filter=&page=1&pageSize=10&branchCode=02 | Expandir |
|---|
| Como passei a filial 02 que está no filtro, optei por carregar apenas as funções dessa filial { "items": [ { "filFuncao": "02", "codFuncao": "00001", "funcaoDesc": "CP038" }, { "filFuncao": "02", "codFuncao": "00002", "funcaoDesc": "65456" } ], "hasNext": false } |
Para o retorno de erro, seguir a estrutura abaixo. Campo | Tipo | code | number | message | string | detailedMessage | string | type | string (“error”, “warning”, “success”) |
| Expandir |
|---|
| { "code": 500, "detailedMessage": "", "message": "Internal Server Error", "type": "error" } |
| Card |
|---|
| Objetivo: Listagem dos Departamentos Tipo de requisição: GET Endpoint: /api/rh/v1/ahgora/departamento Query Params: Campo | Descrição | Tipo | Obrigatório | Exemplo | page | Número da página | number | SIM | 1 | pageSize | Tamanho da página | numer | SIM | 50 | filter | Campo automático do lookup. Pode filtrar o C.Custo | string | Não | “Departamento X” | branchCode | Código da filial que está no filtro | string | Não | 02 |
Obs* O filtro da filial é obrigatório, ele vai estar no filtro da função caso queira retornar apenas os departamentos das filiais selecionadas. Estrutura de Retorno: Campo | Tipo | filDepto | string | codDepto | string | deptoDesc | string |
Exemplo de Requisição: GET: api/rh/v1/ahgora/departamento?filter=&page=1&pageSize=10&branchCode=02 | Expandir |
|---|
| Como passei a filial 02 que está no filtro, optei por carregar apenas os departamentos dessa filial { "items": [ { "filDepto": "02", "codDepto": "000000060", "deptoDesc": "DEP MAT 002042" }, { "filDepto": "02", "codDepto": "000000061", "deptoDesc": "DEP DELETADO" }, { "filDepto": "02", "codDepto": "0002 ", "deptoDesc": "Depto Vendas" } ], "hasNext": false } |
Para o retorno de erro, seguir a estrutura abaixo. Campo | Tipo | code | number | message | string | detailedMessage | string | type | string (“error”, “warning”, “success”) |
| Expandir |
|---|
| { "code": 500, "detailedMessage": "", "message": "Internal Server Error", "type": "error" } |
| Card |
|---|
| id | sitcateg |
|---|
| label | Situação/Categoria |
|---|
| Objetivo: Listagem da situação do funcionário e categoria Tipo de requisição: GET Endpoint: /api/rh/v1/ahgora/opcoes Obs* Sempre será retornado os dois conjuntos de dados na requisição, após a primeira requisição, os dois conjuntos ficaram em memória para consulta; Estrutura de Retorno: Para o retorno, utilizamos a forma abaixo. Campo | Tipo | label | string | value | string |
Exemplo de Requisição: GET: /api/rh/v1/ahgora/opcoes O retorno precisa ser uma lista com a propriedade 'items', com os dois arrays 'SitOptions' para a situação e 'catOptions' para as categorias. | Expandir |
|---|
| { "items": { "sitOptions": [ { "value": "N", "label": "SITUACAO NORMAL" }, { "value": "A", "label": "AFASTADO TEMP." }, { "value": "D", "label": "DEMITIDO" }, { "value": "F", "label": "FERIAS" } ], "catOptions": [ { "value": "A", "label": "AUTONOMO" }, { "value": "C", "label": "COMISSIONADO" }, { "value": "D", "label": "DIARISTA" }, { "value": "E", "label": "ESTAGIARIO MENSALISTA" }, { "value": "M", "label": "MENSALISTA" } ] } } |
Para o retorno de erro, seguir a estrutura abaixo. Campo | Tipo | code | number | message | string | detailedMessage | string | type | string (“error”, “warning”, “success”) |
| Expandir |
|---|
| { "code": 500, "detailedMessage": "", "message": "Internal Server Error", "type": "error" } |
| Totvs custom tabs box items |
|---|
| |
| Ao acessar o novo menu criado, abre-se uma nova tela. Nessa nova tela, serão exibidos os funcionários que tiveram evento S-1210 transmitidos ao governo no ano anterior ao ano informado no parâmetro Ano Retificação que deve ser informado.
Image Added
No parâmetro Ano Retificação, deve ser informado o ano que que será gerado o evento S-1210 com retificação de períodos anteriores, por exemplo ao informar Ano Retificação 2026, serão listados funcionários que tiveram evento S-1210 transmitidos ao governo no ano de 2025 que possuam informações complementares (dedução dependente, pensão alimentícia, previdência privada ou despesas médicas/reembolsos) e que seja necessário fazer a retificação em Janeiro de 2026 no bloco <perAnt> conforme prevê o leiaute S-1.3.
O parâmetro CPF é opcional. O botão aplicar filtros só ficará habilitado após informar o parâmetro Ano Retificação que deve ser no formado de 4 dígitos e maior ou igual a 2026 conforme o exemplo abaixo: Image Added
Na lista, são exibidas as seguintes colunas: CPF, Nome, Tipo, Meses Retificados/a Retificar em XXXX e o botão Editar (detalhado mais adiante neste documento). O campo Tipo apresenta as seguintes classificações: Funcionário – Exibe apenas funcionários. Funcionário/Prestador – Refere-se a funcionários que também possuem registro como prestador no programa FP2160. Prestador – Prestadores com registro no programa FP2160. Prestador – Outros Sistemas – Prestadores integrados de outros sistemas ou módulos, como, por exemplo, BackOffice.
⚠️ Observação: Para os casos classificados como Prestador – Outros Sistemas, só será possível consultar os meses a serem retificados. A definição dos meses a serem retificados deve ser realizada no programa CD2014.
Exemplo informando os parâmetros Ano Retificação e CPF:
Image Added
No botão Filtros Avançados é possível informar o Estabelecimento além do Ano Retificação e CPF, porém o Ano Retificação é obrigatório.
Image Added
Image Added
Para cada registro da lista de funcionários está disponível o botão Editar, com ícone de um lápis, onde será possível informar quais meses serão retificados. Image Added
Ao clicar no botão Editar, a seguinte tela será exibida: Image Added
Ao selecionar os meses desejados, o sistema registrará os períodos que deverão ser retificados. Image Added
Image Added
Exemplos de situações em que será necessário fazer retificações: - Quando for necessário alterar o CPF do beneficiário da pensão alimentícia, por exemplo, em situações em que anteriormente era informado ao eSocial o CPF do responsável, mas no processo judicial consta o CPF do alimentado:
- Anteriormente, era obrigatório informar o nome e CPF do responsável, por fins de líquido bancário, onde o depósito é realizado em sua conta.
- Com a alteração implementada no programa FP1740 - Manutenção Beneficiários Pensão Alimentícia, passou a ser possível informar o responsável pelo recebimento da pensão (nesse caso, o responsável) apenas para fins de líquido bancário.
- Já para o eSocial, será considerado o CPF do alimentado.
Exemplo: Image Added
Image Added
Gerou o S-1210 dos meses de 06/2025 a 09/2025 com a informação incorreta no bloco <penAlim> Image Added
Para corrigir a informação retroativamente, deve ser realizado os seguintes procedimentos em Janeiro de 2026. Antes do cálculo da folha, deve ser alterado o programa FP1740 da seguinte forma: Deve ser criada uma nova pessoa física no programa FP1440 com os dados do pensionista Image Added
Informar o código da pessoa física no programa FP1740 Image Added
Informar o nome e CPF do responsável na aba Forma Pagt quadro Responsável para Depósito Bancário Image Added
Image Added
No programa FP6100 ficará dessa forma:
Marcar na nova tela os meses que deseja retificar as informações no evento S-1210, por exemplo , agosto e setembro de 2025 Image Added
Após o cálculo da folha, gerar o evento S-1210 de Janeiro de 2026 onde serão gerados os blocos de <perAnt> com a informação do CPF ajustado Image Added
Outra situação em que as informações do evento S-1210 podem ser retificadas é para os casos em que algum valor de informações complementares (enviado no S-1210, no bloco infoIRComplem) estejam diferentes do que foi tramitado na folha de pagamento, cujo o ajuste de valor seja necessário somente nas informações complementares do IR, e não haja necessidade de ajustes e retificação do S-1200. Exemplo: O valor de despesas médicas do titular tramitado na folha de pagamento de Mai/2025, com pagamento em Jun/2025 do funcionário foi de R$50,00, porém no prgorama FP9912, para o mês de pagamento Jun/2025 está informado um valor de R$ 40,00, no evento S-1210 de Jun/2025, no bloco infoIRComplem foi enviado valor de R$40,00 como despesas médicas do titular, nesse caso pode ser realizado o ajuste e realizado a retificação em Jan/2026.
Para funcionários desligados e que seja necessária a retificação do evento S-1210 o processo deve ser feito da seguinte forma: - Na nova tela, marcar os meses que deseja retificar;
- Corrigir a informação no produto, ou seja, alterar o FP1740 ou FP9912 por exemplo;
- Executar somente o programa FR9824 para gerar o S-1210 com os blocos de <perAnt>
Em relação à tag <nrRec1210Orig>, o conteúdo varia conforme a forma de integração utilizada: Middleware: é preenchida diretamente com o número do recibo do evento S-1210 de origem. TAF: é preenchida inicialmente com o número da mensagem de origem do evento S-1210. O TAF então realiza a conversão dessa informação para o número do recibo, que é transmitido ao governo.
|
| Totvs custom tabs box items |
|---|
| Este detalhamento tem como objetivo registrar os endpoints da interface da integração da tela desenvolvida utilizando PO-UI.
| Deck of Cards |
|---|
| | Card |
|---|
| id | IntegAhgoraLista |
|---|
| label | Integração Funcionário |
|---|
| Objetivo: Busca dos dados para listagem dos funcionários e envio dos funcionários selecionados para o back-end. Importante: Caso utilize proxy reverso na configuração do servidor, deve ser adicionada a entrada na configuração do proxy reverso: <LocationMatch "^/api/rh/v1/RetifPerAnt/"> SecRuleRemoveById 911100 SecRuleRemoveById 920420 </LocationMatch> |
|---|
Tipo de requisição: GET/PUT Endpoint: /api/rh/v1/RefificaPerAnt
Get: Query Params: Nome | Descrição | Tipo | Obrigatório | Exemplo | page | Número da página | number | Sim | 1 | pageSize | Tamanho da página | number | Sim | 20 | yearRectif | Ano retificação | number | Sim | Maior ou igual a 2026 | registrationNumber | CPF | number | Não | 59303411099 | branchCode | Filial (Multi Valores separados por vírgula) | string | Não | “D MG 01,D MG 02” |
Estrutura de Retorno: Campo | Tipo | Exemplo | id (obrigatório) | string | "2026-59303411099" | yearRectif(obrigatório) | number | 2026 | companyCode | string | "1" | branchCode(obrigatório) | string | “02” | type | string | "Funcionário" ou "Prestador" ou "Funcionário/Prestador" | registrationNumber | string | "59303411099" | name | string | "Nome do funcionário" | enableMonths | array | [1,5,6,7,9,12]
| Months | array | [5,9,12] |
Exemplo de Requisição: GET: api/rh/v1/RefificaPerAnt?page=1&pageSize=20&yearRectif=2026 Se atentar com a paginação. | Expandir |
|---|
| { "id": "2026-59303411099", "yearRectif": 2026, "companyCode": "1", "branchCode": "1", "type": "Funcionário", "registrationNumber": "59303411099", "name": "Admitido Antes da Retificação e Ativo", "enableMonths": [ 1, 2, 3, 6, 7, 8, 10, 11 ], "months": [ 3, 6, 7, 8, 10, 11 ] , "hasNext": false, "total": 1 } |
PUT: /api/rh/v1/RefificaPerAnt Nome | Descrição | Tipo | Obrigatório | Exemplo | id (obrigatório) | Código interno do funcionário | string | Sim | "2026-59303411099" | companyCode | Empresa ou Coligada | string | Sim | "10" | branchCode | Estabelecimento ou Filial | string | Sim | "1" | months | Meses retificados | array | Sim | [1,3,5,9,12] | name | Nome do funcionário | string | Não | "Sabrina" | registrationNumber | CPF do funcionário | string | Não | 13175924689 | type | Tipo do funcionário | string | Não | "Funcionário" | yearREctif | Ano da retificação | integer | Não | 2026 |
A partir do filtro realizado, ao clicar editar e confirmar, os dados serão enviados para o back-end. | Expandir |
|---|
| { branchCode: "1" companyCode: "eSo" enableMonths: [2, 3, 5, 6, 7, 8, 9] id: "2026-13175924689" months: [6] name: "Sabrina Ayla Mariana Santos" registrationNumber: "13175924689" type: "Funcionário" yearRectif: 2026 }
|
Para o retorno de erro, seguir a estrutura abaixo. Campo | Tipo | code | number | message | string | detailedMessage | string | type | string (“error”, “warning”, “success”) |
| Expandir |
|---|
| { "code": 500, "detailedMessage": "", "message": "Internal Server Error", "type": "error" } |
|
|
|
| Totvs custom tabs box items |
|---|
| default | no |
|---|
| referencia | vídeos |
|---|
| - Este video demonstra um exemplo do uso da nova tela, realizando a retificação do S-1210 de períodos anteriores.
| Conector de Widget |
|---|
| url | https://www.youtube.com/watch?v=QcdyH7eXKmE |
|---|
|
| | Totvs custom tabs box items |
|---|
| default | no |
|---|
| referencia | vídeos |
|---|
| | Toggle Cloak |
|---|
| id | How To | MP - SIGAGPE integração com a Ahgora |
|---|
| How To | MP - SIGAGPE integração com a Ahgora
| Cloak |
|---|
| | id | How To | MP - SIGAGPE integração com a Ahgora |
|---|
| How To | MP - SIGAGPE integração com a Ahgora Parte 1How To | MP - SIGAGPE integração com a Ahgora Parte 2 How To | MP - SIGAGPE integração com a Ahgora Parte 3 How To | MP - SIGAGPE integração com a Ahgora Parte 4 How To | MP - SIGAGPE integração com a Ahgora Parte 5 How To | MP - SIGAGPE integração com a Ahgora Parte 6 How To | MP - SIGAGPE integração de localizações com a Ahgora Parte 7 | Toggle Cloak |
|---|
| id | How To | PW - Ponto Web Ahgora integração com Protheus SIGAGPE |
|---|
| How To | PW - Ponto Web Ahgora integração com Protheus SIGAGPE
| Cloak |
|---|
| id | How To | PW - Ponto Web Ahgora integração com Protheus SIGAGPE |
|---|
| How To | PW - Ponto Web Ahgora integração com Protheus SIGAGPE Parte 1How To | PW - Ponto Web Ahgora integração com Protheus SIGAGPE Parte 2 How To | PW - Ponto Web Ahgora integração com Protheus SIGAGPE Parte 3 How To | PW - Ponto Web Ahgora integração com Protheus SIGAGPE Parte 4 How To | PW - Ponto Web Ahgora integração com Protheus SIGAGPE Parte 5 How To | PW - Ponto Web Ahgora integração com Protheus SIGAGPE Parte 6
|