#
CALL adp10023_inicializa_record() # Limpa record da msg
# realiza a carga do RECORD com a mensagem de negócio que chegou
LET l_conteudo = _ADVPL_eai_get_business_content(l_mensagem, _BusinessContent, 'adp10023')
# cria uma mensagem de resposta baseada na mensagem de negócio
LET l_resposta = _ADVPL_eai_create_response(l_mensagem)
# se a carga ocorreu sem erros
IF _ADVPL_eai_get_success(l_conteudo) THEN
# Verifica existência do cadastro De/Para Empresas - EAI10000/Configuração/Aplicativos Externos
CALL log00021_busca_CompanyInternalId(l_mensagem,
adp10023_get_BusinessContent_CompanyId(),
adp10023_get_BusinessContent_BranchId())
LET l_sistema_gerador = adp10023_get_BusinessContent_OriginCode()
LET l_periodo_contab = adp10023_retorna_periodo_contabil(adp10023_get_BusinessContent_PeriodStartDate())
LET l_segmento_periodo = adp10023_retorna_segmento_periodo_contabil(adp10023_get_BusinessContent_PeriodStartDate())
LET l_num_lote = adp10023_get_BusinessContent_BatchNumber()
FOR l_ind = 1 TO 10000
IF adp10023_get_BusinessContent_Entries_Entry_EntryNumber(l_ind) IS NULL then
EXIT FOR
END IF
LET l_centro_de_custo = adp10023_get_BusinessContent_Entries_Entry_CostCenterCode(l_ind)
LET lar_lancamentos[l_ind].l_cta_deb = adp10023_get_BusinessContent_Entries_Entry_DebitAccountCode(l_ind)
LET lar_lancamentos[l_ind].l_cta_cre = adp10023_get_BusinessContent_Entries_Entry_CreditAccountCode(l_ind)
LET lar_lancamentos[l_ind].l_dat_movto = adp10023_formata_data(adp10023_get_BusinessContent_Entries_Entry_MovementDate(l_ind))
LET lar_lancamentos[l_ind].l_val_lancto = adp10023_get_BusinessContent_Entries_Entry_EntryValue(l_ind)
LET lar_lancamentos[l_ind].l_hist_padrao = adp10023_get_BusinessContent_Entries_Entry_HistoryCode(l_ind)
IF adp10023_possui_historico(adp10023_get_BusinessContent_Entries_Entry_ComplementaryHistory(l_ind)) = TRUE THEN
LET lar_lancamentos[l_ind].l_compl_hist = 'S'
ELSE
LET lar_lancamentos[l_ind].l_compl_hist = 'N'
END IF
LET lar_lancamentos[l_ind].l_linha_produto = l_centro_de_custo[1,2]
LET lar_lancamentos[l_ind].l_linha_receita = l_centro_de_custo[3,4]
LET lar_lancamentos[l_ind].l_segmto_mercado = l_centro_de_custo[5,6]
LET lar_lancamentos[l_ind].l_classe_uso = l_centro_de_custo[7,8]
LET lar_lancamentos[l_ind].l_hist_compl_txt = adp10023_get_BusinessContent_Entries_Entry_ComplementaryHistory(l_ind)
LET lar_lancamentos[l_ind].l_num_relac = adp10023_get_BusinessContent_Entries_Entry_RelationshipNumber(l_ind)
END FOR
CALL con6071_set_cod_empresa(l_cod_empresa)
CALL con6071_set_m_sistema_gerador(l_sistema_gerador)
CALL con6071_set_periodo_contab(l_periodo_contab)
CALL con6071_set_segmto_periodo(l_segmento_periodo)
IF l_status THEN
CALL adp10023_set_ReturnContent_BatchNumber(l_num_lote)
FOR l_ind = 1 TO 10000
IF lar_lancamentos[l_ind].l_dat_movto IS NULL THEN
EXIT FOR
END IF
CALL adp10023_set_ReturnContent_Entries_Entry_EntryNumber(l_ind, l_ind)
CALL adp10023_set_ReturnContent_Entries_Entry_RelationshipNumber(con6071_get_num_relacionto(l_ind), l_ind)
END FOR
CALL _ADVPL_eai_set_return_content(l_resposta, _ReturnContent, _XmlElements)
ELSE
CALL _ADVPL_eai_log_add_message(l_resposta, 'ERROR', '1', l_msg)
END IF
ELSE
# se ocorreu algum erro, adiciona na mensagem de resposta
CALL _ADVPL_eai_log_add_message(l_resposta, 'ERROR', '0', _ADVPL_eai_get_error_message(l_conteudo))
END IF
RETURN l_resposta
END FUNCTION |