Histórico da Página
Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|
Informações Gerais
Especificação | |||
Produto | Logix | Módulo | Contas a Pagar / Controle de Despesas de Viagens |
Segmento Executor | Manufatura | ||
Projeto1 | L_MAN_FIN001 | IRM1 | PCREQ-8903 Pequenas melhorias - Financeiro |
Requisito1 | PCREQ-9778 - Integração de saldos de viagens no RH Protheus | Subtarefa1 | PDRMAN-7907 - Analisar / Projetar Especificação - Integração de saldos de viagens no RH Protheus |
Chamado2 |
| ||
País | ( X ) Brasil ( ) Argentina ( ) Mexico ( ) Chile ( ) Paraguai ( ) Equador ( ) USA ( ) Colombia ( ) Outro _____________. | ||
Outros | <Caso necessário informe outras referências que sejam pertinentes a esta especificação. Exemplo: links de outros documentos ou subtarefas relacionadas>. |
Legenda: 1 – Inovação 2 – Manutenção (Os demais campos devem ser preenchidos para ambos os processos).
Objetivo
Preparar os programas do módulo CDV e Contas a Pagar do Logix para incluir na folha de pagamento do Protheus RH, acertos de despesas (DESCONTOS) de viagens dos funcionários. Esta opção já existe no ERP Logix e será implementado agora em complemento do projeto de convergência, onde o módulo de RH do Logix será descontinuado e utilizado como padrão o RH do Protheus.
Conforme padrão de desenvolvimento da inovação para integrações, será utilizado o conceito de mensagem única. Não será necessário criar nova mensagem, utilizaremos a mensagem MonthlyPayroll1 para enviar o saldo das despesas de viagens.
.
Definição da Regra de Negócio
O módulo de Controle de Despesas de Viagens permite que uma viagem seja planejada de modo a integrar as suas despesas diretamente no módulo de Contas a Pagar, Fluxo de Caixa, Contabilidade e também pode possibilitar o desconto em folha de pagamento dos saldos a pagar (desconto) do funcionário.
O Logix não fará o processo de exclusão do movimento gerado na Folha, no Protheus, a exclusão dos movimentos gerados deverá ser efetuado diretamente no módulo.
O processo de inclusão do desconto em folha no RH Protheus será implementado na seguinte forma:
1 – Criação de novo parâmetro para armazenar centro de custo
Será criado parâmetro para informar o centro de custo do Protheus para desconto do adiantamento na folha de pagamento, este parâmetro não é obrigatório, deverá ser informado
se o Protheus utilizar conceito de rateio contábil.. o Centro de custo deverá ser um centro de custo do Logix.
Parâmetro | Descrição |
centro_custo_desconto_adiant_folha | Centro de Custo para desconto do adiantamento na Folha |
2 - FIN80167 - Função de integração dos saldos a pagar na folha do Protheus
Será implementada nova função que executará o adapter “EAIHelperMonthlyPayroll1” para integração dos saldos a pagar dos adiantamentos na folha do Protheus. A estrutura da função terá como referência o CAP9540 (Integra dados IRRF/INSS de autônomos no Protheus) conforme exemplo abaixo:
#------------------------------------------------------------------------------------------------------------------------------------------------#
FUNCTION fin80167_envia_acerto_despesa_eai(l_empresa, l_fornecedor, l_val_acerto, l_dat_acerto, l_operacao)
#------------------------------------------------------------------------------------------------------------------------------------------------#
DEFINE l_ind SMALLINT,
l_internalid_verba CHAR(05),
l_cc_adiant_folha DECIMAL(04,0),
l_status SMALLINT,
l_cod_verba CHAR(03),
l_verba CHAR(20),
l_empresa CHAR(02),
l_fornecedor CHAR(15),
l_internalid_fornec CHAR(18),
l_val_acerto DECIMAL(13,2),
l_dat_acerto DATE,
l_operacao CHAR(08),
la_verbas RECORD
cod_verba CHAR(05),
internalid_verba CHAR(06), # codigo da empresa|código da verba
tipo_conteudo_verba CHAR(01), # enviar 3 quando trata de "valor"
valor_verba DECIMAL(12,2),
data_lancto DATE, # data do recolhimento/retenção do imposto
mes DECIMAL(2,0),
ano DECIMAL(4,0),
tipo_registro CHAR(01), # enviar sempre como 6 que é "informado"
centro_custo DECIMAL(4,0),
internalid_cc CHAR(07) # codigo da empresa|centro de custo
END RECORD
CALL EAIHelperMonthlyPayroll1_inicializa_record()
CALL EAIMapper_set("empresa" , l_empresa )
CALL EAIMapper_set("empresa_inter_id" , l_empresa )
CALL EAIMapper_set("employee" , l_fornecedor )
CALL EAIMapper_set("employee_inter_id" , l_fornecedor )
IF l_operacao = "upsert" THEN
CALL log2250_busca_parametro(l_empresa,"centro_custo_adiant_folha")
RETURNING l_cc_adiant_folha, l_status
IF NOT l_status OR l_cc_adiant_folha IS NULL THEN
LET l_cc_adiant_folha = NULL
END IF
CALL fin80167_busca_codigo_verba("acerto_adiant_folha",l_empresa)
RETURNING la_verbas.cod_verba, l_status
IF NOT l_status OR la_verbas.cod_verba IS NULL THEN
RETURN FALSE
END IF
LET l_ind = "1"
LET la_verbas.valor_verba = l_val_acerto
LET la_verbas.data_lancto = l_dat_acerto
LET la_verbas.internalid_verba = l_empresa CLIPPED,"|",la_verbas.cod_verba {a principio não deve gerar internal ID da verba}
LET la_verbas.tipo_conteudo_verba = "3"
LET la_verbas.mes = MONTH(la_verbas.data_lancto)
LET la_verbas.ano = YEAR(la_verbas.data_lancto)
LET la_verbas.tipo_registro = "6"
IF l_cc_adiant_folha IS NULL THEN
LET la_verbas.centro_custo = NULL
LET la_verbas.internalid_cc = NULL
ELSE
LET la_verbas.centro_custo = l_cc_adiant_folha
LET la_verbas.internalid_cc = l_empresa CLIPPED,"|",la_verbas.centro_custo USING "<<<<" {será gerado sem o internal ID do centro de custo}
END IF
CALL EAIHelperMonthlyPayroll1_set_BusinessContent_ListOfPayrollItem_PayrollItem_FundCode(la_verbas.cod_verba, l_ind)
CALL EAIHelperMonthlyPayroll1_set_BusinessContent_ListOfPayrollItem_PayrollItem_FundCodeInternalId(la_verbas.internalid_verba, l_ind) ## empresa|codigo da verba
CALL EAIHelperMonthlyPayroll1_set_BusinessContent_ListOfPayrollItem_PayrollItem_InformationType(la_verbas.tipo_conteudo_verba, l_ind) ## tipo da verba - quando é valor é sempre 3
#CALL EAIHelperMonthlyPayroll1_set_BusinessContent_ListOfPayrollItem_PayrollItem_NumberOfHoursPosted(l_conteudo, l_ind_1) ## nao obrigatorio
CALL EAIHelperMonthlyPayroll1_set_BusinessContent_ListOfPayrollItem_PayrollItem_EntryValue(la_verbas.valor_verba, l_ind) ## conteudo da verba
CALL EAIHelperMonthlyPayroll1_set_BusinessContent_ListOfPayrollItem_PayrollItem_PaymentDate(la_verbas.data_lancto, l_ind) ## data
CALL EAIHelperMonthlyPayroll1_set_BusinessContent_ListOfPayrollItem_PayrollItem_ReferenceDate(la_verbas.data_lancto , l_ind) ## data
CALL EAIHelperMonthlyPayroll1_set_BusinessContent_ListOfPayrollItem_PayrollItem_MonthCompetence(la_verbas.mes, l_ind) ## mês
CALL EAIHelperMonthlyPayroll1_set_BusinessContent_ListOfPayrollItem_PayrollItem_YearCompetence(la_verbas.ano, l_ind) ## ano
CALL EAIHelperMonthlyPayroll1_set_BusinessContent_ListOfPayrollItem_PayrollItem_FundOrigin(la_verbas.tipo_registro , l_ind) ## tipo do registro - quado é informado é sempre 6
IF l_cc_adiant_folha IS NOT NULL THEN
CALL EAIHelperMonthlyPayroll1_set_BusinessContent_ListOfPayrollItem_PayrollItem_CostCenterInternalId(la_verbas.internalid_cc, l_ind) ## nao obrigatorio
END IF
IF NOT EAIAdapterMonthlyPayroll1_SendBusinessMessage("upsert") THEN
CALL log0030_mensagem('Erro ao enviar informações para o sistema Protheus.',"excl")
RETURN FALSE
ELSE
RETURN TRUE
END IF
END IF
RETURN TRUE
END FUNCTION
#-----------------------------------------------------------------------------------------------#
FUNCTION fin80167_busca_codigo_verba(l_parametro_verba, l_empresa)
#----------------------------------------------------------------------------------------------#
DEFINE l_parametro_verba CHAR(25),
l_empresa CHAR(02),
l_cod_verba CHAR(05),
l_status SMALLINT
LET l_status = TRUE
WHENEVER ERROR CONTINUE
SELECT parametro_texto
INTO l_cod_verba
FROM cap_par_compl
WHERE empresa = l_empresa
AND nom_tabela = "verba"
AND parametro = l_parametro_verba
WHENEVER ERROR STOP
IF sqlca.sqlcode <> 0 THEN
#CALL log003_err_sql("SELECT","cap_par_compl")
LET l_status = FALSE
END IF
RETURN l_cod_verba, l_status
END FUNCTION
3 - CDV0079 /FIN80140 (Integra movimentos na folha de pagamento Logix))
Será alterada a função CDV0079 (Gera dados para folha de pagamento Logix) para prever a integração dos saldos dos adiantamentos no RH do Protheus. Será prevista a chamada para a nova função “fin80xxx_envia_acerto_despesa_eai” que conterá as regras para execução do Adapter “EAIHelperMonthlyPayroll1” para envio da mensagem única “MonthlyPayroll” já utilizada para integrar as retenções de IRRF e INSS de autônomos e ccoperativas. Abaixo segue alteração sugerida, ela deverá implementada no início da função cdv0079_gera_evento_para_folha_pgto:
#---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------#
FUNCTION cdv0079_gera_evento_para_folha_pgto(l_empresa, l_empresa_rhu, l_matricula, l_val_evento, l_login_func, l_num_ad_relac, l_programa, l_ies_ambiente)
#---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------#
DEFINE l_empresa LIKE movto.cod_empresa,
l_matricula LIKE movto.num_matricula,
l_evento LIKE movto.cod_evento,
l_val_evento LIKE movto.val_evento,
l_login_func LIKE movto.nom_usuario_alt,
l_num_ad_relac LIKE cdv_adto_viagem.num_ad_adto_viagem,
l_programa CHAR(07),
l_dat_devolucao DATE
DEFINE l_empresa_rhu LIKE cdv_info_viajante.empresa_rhu,
l_ies_ambiente LIKE w_log0250.ies_ambiente,
l_primeiro_dia DATE,
l_ultimo_dia DATE,
l_data DATE,
l_hor_mov DATETIME HOUR TO SECOND,
l_status SMALLINT
IF ADVPL_eai_is_send_configured('MonthlyPayroll') THEN
LET dat_devolucao = TODAY
IF NOT fin80167_envia_acerto_despesa_eai(l_cod_empresa, l_matricula, l_val_evento, l_dat_devolucao, "upsert") THEN
RETURN FALSE
ELSE
RETURN TRUE
END IF
END IF
4 - CAP5910/FIN30159 (Cadastro de Verbas para exportação de dados)
Será alterado o programa para prever a criação de um novo parâmetro para associar uma verba ao evento de desconto de adiantamento de viagens. O usuário deverá consultar no Protheus qual verba se relaciona com este processo (ou cria-la no Protheus) e em seguida cadastrá-la no cap9510. Abaixo segue exemplo das alterações a serem efetuadas.
#------------------------------------------------#
FUNCTION cap9510_valida_verba()
#----------------------------------------------#
DEFINE l_status SMALLINT
CASE mr_verbas.parametro_verba
WHEN "base_calc_inss_recol"
LET l_status = TRUE
WHEN "val_inss_recol"
LET l_status = TRUE
WHEN "base_calc_inss_ret"
LET l_status = TRUE
WHEN "val_inss_ret"
LET l_status = TRUE
WHEN "base_calc_ir"
LET l_status = TRUE
WHEN "val_ir"
LET l_status = TRUE
WHEN "acerto_adiant_folha"
LET l_status = TRUE
OTHERWISE
LET l_status = FALSE
END CASE
RETURN l_status
END FUNCTION
#---------------------------------------#
FUNCTION cap9510_popup()
#--------------------------------------#
DEFINE l_verbas CHAR(2000),
l_verbas2 CHAR(50),
l_descricao_verba CHAR(50)
CALL log006_exibe_teclas("01 02 03 07", p_versao)
CASE
WHEN INFIELD(parametro)
LET l_verbas = "1{Base Calculo INSS - Patr.}, ",
"2{Valor INSS - Patr.},",
"3{Base Calc. INSS - Ret.},",
"4{Valor INSS - Ret.},",
"5{Base Calc. IR},",
"6{Valor IR},",
"7{Desc. Adiant. Folha}," CLIPPED
LET l_verbas2 = log0830_list_box(10,30,l_verbas)
IF l_verbas2 = 1 THEN
LET mr_verbas.parametro_verba = "base_calc_inss_recol"
LET l_descricao_verba = "Base Calculo INSS - Patr."
END IF
IF l_verbas2 = 2 THEN
LET mr_verbas.parametro_verba = "val_inss_recol"
LET l_descricao_verba = "Valor INSS - Patr."
END IF
IF l_verbas2 = 3 THEN
LET mr_verbas.parametro_verba = "base_calc_inss_ret"
LET l_descricao_verba = "Base Calc. INSS - Ret."
END IF
IF l_verbas2 = 4 THEN
LET mr_verbas.parametro_verba = "val_inss_ret"
LET l_descricao_verba = "Valor INSS - Ret."
END IF
IF l_verbas2 = 5 THEN
LET mr_verbas.parametro_verba = "base_calc_ir"
LET l_descricao_verba = "Base Calc. IR"
END IF
IF l_verbas2 = 6 THEN
LET mr_verbas.parametro_verba = "val_ir"
LET l_descricao_verba = "Valor IR"
END IF
IF l_verbas2 = 7 THEN
LET mr_verbas.parametro_verba = "acerto_adiant_folha"
LET l_descricao_verba = "Desconto Saldo Adiant. Viagens."
END IF
CURRENT WINDOW IS w_cap9510
DISPLAY mr_verbas.parametro_verba TO parametro
DISPLAY l_descricao_verba TO descricao_verba
END CASE
END FUNCTION
#------------------------------------------------------#
FUNCTION cap9510_busca_descricao()
#-----------------------------------------------------#
DEFINE l_verbas CHAR(2000),
l_verbas2 CHAR(50),
l_descricao_verba CHAR(50)
IF mr_verbas.parametro_verba = "base_calc_inss_recol" THEN
LET l_descricao_verba = "Base Calculo INSS - Patr."
END IF
IF mr_verbas.parametro_verba = "val_inss_recol" THEN
LET l_descricao_verba = "Valor INSS - Patr."
END IF
IF mr_verbas.parametro_verba = "base_calc_inss_ret" THEN
LET l_descricao_verba = "Base Calc. INSS - Ret."
END IF
IF mr_verbas.parametro_verba = "val_inss_ret" THEN
LET l_descricao_verba = "Valor INSS - Ret."
END IF
IF mr_verbas.parametro_verba = "base_calc_ir" THEN
LET l_descricao_verba = "Base Calc. IR"
END IF
IF mr_verbas.parametro_verba = "val_ir" THEN
LET l_descricao_verba = "Valor IR"
END IF
IF mr_verbas.parametro_verba = "acerto_adiant_folha" THEN
LET l_descricao_verba = "Desconto Saldo Adiant. Viagens."
END IF
RETURN l_descricao_verba
END FUNCTION
Rotina | Tipo de Operação | Opção de Menu | Regras de Negócio |
CDV0079 | Alteração | Integração movimentos do financeiro na Folha | - |
CAP5910 | Alteração | Cadastro de Verbas para exportação | - |
FIN80167 | Alteração | Função de integração de adiantamento de viagens no Protheus | - |
FIN80140 | Alteração | Integração movimentos do financeiro na Folha | |
FIN30159 | Alteração | Cadastro de Verbas para exportação |
Opcional
Protótipo de Tela
<Caso necessário inclua protótipos de telas com o objetivo de facilitar o entendimento do requisito, apresentar conceitos e funcionalidades do software>.
Protótipo 01
Abaixo segue exemplo da tale do cap5910 mostrando o novo parâmetro de tela para associar a uma verba do Protheus.
Opcional
Fluxo do Processo
<Nesta etapa incluir representações gráficas que descrevam o problema a ser resolvido e o sistema a ser desenvolvido. Exemplo: Diagrama - Caso de Uso, Diagrama de Atividades, Diagrama de Classes, Diagrama de Entidade e Relacionamento e Diagrama de Sequência>.
Opcional
Dicionário de Dados
Arquivo ou Código do Script: AAA – Negociação Financeira / *Versao=CP.2014.12_03*/
Índice | Chave |
01 | <FI9_FILIAL+FI9_IDDARF+FI9_STATUS> |
02 | <FI9_FILIAL+FI9_FORNEC+ FI9_LOJA+FI9_EMISS+FI9_IDDARF> |
03 | <FI9_FILIAL+FI9_FORNEC+ FI9_LOJA+FI9_PREFIX+FI9_NUM+FI9_PARCEL+FI9_TIPO> |
Campo | <AAA_PERESP> |
Tipo | <N> |
Tamanho | <6> |
Valor Inicial | <Varia de acordo com o tipo informado. Por exemplo, quando o campo “tipo” for date, neste campo pode ser informado uma data>. |
Mandatório | Sim ( ) Não ( ) |
Descrição | <Referência Mínima para Cálculo> |
Título | <Ref.Calc.> |
Picture | <@E999.99> |
Help de Campo | <Informar o % que o aluno pagará em dinheiro. Esse % poderá ser alterado durante a negociação> |
(Opcional)
Grupo de Perguntas
<Informações utilizadas na linha Protheus>.
Nome: FINSRF2
X1_ORDEM | 01 |
X1_PERGUNT | Emissão De |
X1_TIPO | D |
X1_TAMANHO | 8 |
X1_GSC | G |
X1_VAR01 | MV_PAR01 |
X1_DEF01 | Comum |
X1_CNT01 | '01/01/08' |
X1_HELP | Data inicial do intervalo de emissões das guias de DARF a serem consideradas na seleção dos dados para o relatório |
(Opcional)
Consulta Padrão
<Informações utilizadas na linha Protheus>
Consulta: AMB
Descrição | Configurações de Planejamento |
Tipo | Consulta Padrão |
Tabela | “AMB” |
Índice | “Código” |
Campo | “Código”; ”Descrição” |
Retorno | AMB->AMB_CODIGO |
(Opcional)
Estrutura de Menu
<Informações utilizadas na linha Datasul>.
Procedimentos
Procedimento |
|
|
|
Descrição | (Max 40 posições) | (Max 40 posições) | (Max 40 posições) |
Módulo |
|
|
|
Programa base |
|
|
|
Nome Menu | (Max 32 posições) | (Max 32 posições) | (Max 32 posições) |
Interface | GUI/WEB/ChUI/Flex | GUI/WEB/ChUI/Flex | GUI/WEB/ChUI/Flex |
Registro padrão | Sim | Sim | Sim |
Visualiza Menu | Sim/Não | Sim/Não | Sim/Não |
Release de Liberação |
|
|
|
Programas
Programa |
|
|
|
Descrição | (Max 40 posições) | (Max 40 posições) | (Max 40 posições) |
Nome Externo |
|
|
|
Nome Menu/Programa | (Max 32 posições) | (Max 32 posições) | (Max 32 posições) |
Nome Verbalizado[1] | (Max 254 posições) | (Max 254 posições) | (Max 254 posições) |
Procedimento |
|
|
|
Template | (Verificar lista de opções no man01211) | (Verificar lista de opções no man01211) | (Verificar lista de opções no man01211) |
Tipo[2] | Consulta/Manutenção/ Relatório/Tarefas | Consulta/Manutenção/ Relatório/Tarefas | Consulta/Manutenção/ Relatório/Tarefas |
Interface | GUI/WEB/ChUI/Flex | GUI/WEB/ChUI/Flex | GUI/WEB/ChUI/Flex |
Categoria[3] |
|
|
|
Executa via RPC | Sim/Não | Sim/Não | Sim/Não |
Registro padrão | Sim | Sim | Sim |
Outro Produto | Não | Não | Não |
Visualiza Menu | Sim/Não | Sim/Não | Sim/Não |
Query on-line | Sim/Não | Sim/Não | Sim/Não |
Log Exec. | Sim/Não | Sim/Não | Sim/Não |
Rotina (EMS) |
|
|
|
Sub-Rotina (EMS) |
|
|
|
Localização dentro da Sub Rotina (EMS) |
|
|
|
Compact[4] | Sim/Não | Sim/Não | Sim/Não |
Home[5] | Sim/Não | Sim/Não | Sim/Não |
Posição do Portlet[6] | 0 – Top Left 1 – Top Right 2 – Bottom Left 3 – Bottom Right | 0 – Top Left 1 – Top Right 2 – Bottom Left 3 – Bottom Right | 0 – Top Left 1 – Top Right 2 – Bottom Left 3 – Bottom Right |
Informar os papeis com os quais o programa deve ser vinculado |
|
|
|
Cadastro de Papéis
<O cadastro de papéis é obrigatório para os projetos de desenvolvimento FLEX a partir do Datasul 10>.
<Lembrete: o nome dos papeis em inglês descrito neste ponto do documento, devem ser homologados pela equipe de tradução>.
Código Papel | (máx 3 posições) |
Descrição em Português* |
|
Descrição em Inglês* |
|
[1] Nome Verbalizado é obrigatório para desenvolvimentos no Datasul 10 em diante.
[2] Tipo é obrigatório para desenvolvimento no Datasul 10 em diante
[3] Categorias são obrigatórias para os programas FLEX.
[4] Obrigatório quando o projeto for FLEX
[5] Obrigatório quando o projeto for FLEX
[6] Obrigatório quando o projeto for FLEX
Este documento é material de especificação dos requisitos de inovação, trata-se de conteúdo extremamente técnico. |
---|