Search the Community
Showing results for tags 'r2055'.
-
Está sendo gerado o item vlrSenarSusp no lugar de vlrSenarNRet, causando erro ao gerar xml. Erro retornado: Falha na validação dos dados do evento: evtAquisicaoProdRural-v1_05_01 1871 - Element '{http://www.reinf.esocial.gov.br/schemas/evt2055AquisicaoProdRural/v1_05_01}vlrSenarSusp': This element is not expected. Expected is ( {http://www.reinf.esocial.gov.br/schemas/evt2055AquisicaoProdRural/v1_05_01}vlrSenarNRet ). Linha que causa o problema: Gerador.wCampo(tcDe2, '', 'vlrSenarSusp', 1, 14, 0, item.vlrSenarNRet); Agradeço desde já! Segue em anexo arquivo com a correção. pcnReinfR2055.pas
-
Boa tarde Fiz algumas adaptações no código-fonte para habilitar o envio do Evento R-2055 - Aquisição de Produção Rural através do ACBrMonitor Plus. Verifiquei que já existia uma implementação para leitura do arquivo INI para este Evento, mas ainda faltavam alguns detalhes para funcionar corretamente. Compartilhando com vocês as alterações que fiz para enviar o evento R-2055 corretamente através leitura de arquivo INI pelo Monitor. As alterações estão localizadas entre as linhas com o texto "//28/04/2021 * Fábio *" ). 1ª Alteração: unit pcnEventosReinf function TReinfEventos.LoadFromIni(const AIniString: String): Boolean; var Ok: Boolean; begin case StringINIToTipoEvento(Ok, AIniString) of teR1000: Self.R1000.New.evtInfoContri.LerArqIni(AIniString); teR1070: Self.R1070.New.evtTabProcesso.LerArqIni(AIniString); teR2010: Self.R2010.New.evtServTom.LerArqIni(AIniString); teR2020: Self.R2020.New.evtServPrest.LerArqIni(AIniString); teR2030: Self.R2030.New.evtAssocDespRec.LerArqIni(AIniString); teR2040: Self.R2040.New.evtAssocDespRep.LerArqIni(AIniString); teR2050: Self.R2050.New.evtComProd.LerArqIni(AIniString); //28/04/2021 * Fábio * teR2055: Self.R2055.New.evtAqProd.LerArqIni(AIniString); //28/04/2021 * Fábio * teR2060: Self.R2060.New.evtCPRB.LerArqIni(AIniString); teR2070: Self.R2070.New.evtPgtosDivs.LerArqIni(AIniString); teR2098: Self.R2098.New.evtReabreEvPer.LerArqIni(AIniString); teR2099: Self.R2099.New.evtFechaEvPer.LerArqIni(AIniString); teR3010: Self.R3010.New.evtEspDesportivo.LerArqIni(AIniString); teR9000: Self.R9000.New.evtExclusao.LerArqIni(AIniString); end; Result := (GetCount > 0); end; 2ª Alteração unit pcnReinfR2055 TinfoProcCollectionItem = class(TObject) private //28/04/2021 * Fábio * FtpProc: TtpProc; //28/04/2021 * Fábio * FcodSusp: String; FvlrSenarNRet: double; FnrProc: String; FvlrRatNRet: double; FvlrCPNRet: double; public //28/04/2021 * Fábio * property tpProc: TtpProc read FtpProc write FtpProc; //28/04/2021 * Fábio * property nrProc: String read FnrProc write FnrProc; property codSusp: String read FcodSusp write FcodSusp; property vlrCPNRet: double read FvlrCPNRet write FvlrCPNRet; property vlrRatNRet: double read FvlrRatNRet write FvlrRatNRet; property vlrSenarNRet: double read FvlrSenarNRet write FvlrSenarNRet; end; 3ª Alteração unit pcnReinfR2055 function TevtAqProd.LerArqIni(const AIniString: String): Boolean; var INIRec: TMemIniFile; Ok: Boolean; sSecao, sFim, sSecaoF: String; I, J: Integer; begin Result := True; INIRec := TMemIniFile.Create(''); try LerIniArquivoOuString(AIniString, INIRec); // ******************************************** // Precisa checar se não esta faltando nada // ******************************************** with Self do begin sSecao := 'evtAqProd'; Id := INIRec.ReadString(sSecao, 'Id', ''); Sequencial := INIRec.ReadInteger(sSecao, 'Sequencial', 0); sSecao := 'ideEvento'; ideEvento.indRetif := StrToIndRetificacao(Ok, INIRec.ReadString(sSecao, 'indRetif', '1')); ideEvento.NrRecibo := INIRec.ReadString(sSecao, 'nrRecibo', EmptyStr); ideEvento.perApur := INIRec.ReadString(sSecao, 'perApur', EmptyStr); ideEvento.ProcEmi := StrToProcEmiReinf(Ok, INIRec.ReadString(sSecao, 'procEmi', '1')); ideEvento.VerProc := INIRec.ReadString(sSecao, 'verProc', EmptyStr); { Indicativo de retificação de informação enviada ao ambiente nacional do eSocial. Validação: Informação permitida apenas se perApur for anterior ao início de vigência do evento R-2055 na EFD-Reinf. Só pode ser informado se indRetif = [1]. Valores válidos: S. } ideEvento.retifS1250 := INIRec.ReadString(sSecao, 'retifS1250', EmptyStr); sSecao := 'ideContri'; ideContri.OrgaoPublico := (TACBrReinf(FACBrReinf).Configuracoes.Geral.TipoContribuinte = tcOrgaoPublico); ideContri.TpInsc := StrToTpInscricao(Ok, INIRec.ReadString(sSecao, 'tpInsc', '1')); ideContri.NrInsc := INIRec.ReadString(sSecao, 'nrInsc', EmptyStr); sSecao := 'ideEstabAdq'; FinfoAquisProd.ideEstabAdquir.tpInscAdq := StrToTpInscricao(Ok, INIRec.ReadString(sSecao, 'tpInscAdq', '1')); FinfoAquisProd.ideEstabAdquir.nrInscAdq := INIRec.ReadString(sSecao, 'nrInscAdq', EmptyStr); //28/04/2021 * Fábio * FinfoAquisProd.ideEstabAdquir.tpInscProd := StrToTpInscricao(Ok, INIRec.ReadString(sSecao, 'tpInscProd', '1')); FinfoAquisProd.ideEstabAdquir.nrInscProd := INIRec.ReadString(sSecao, 'nrInscProd', EmptyStr); FinfoAquisProd.ideEstabAdquir.indOpcCP := INIRec.ReadString(sSecao, 'indOpcCP', EmptyStr); //28/04/2021 * Fábio * with FinfoAquisProd.ideEstabAdquir do begin I := 1; while true do begin // de 1 até 3 sSecao := 'tipoCom' + IntToStrZero(I, 1); sFim := INIRec.ReadString(sSecao, 'indCom', 'FIM'); if (sFim = 'FIM') or (Length(sFim) <= 0) then break; with detAquis.New do begin indAquis := StrToDetAquis(Ok, sFim); vlrBruto := StringToFloatDef(INIRec.ReadString(sSecao, 'vlrBruto', ''), 0); //28/04/2021 * Fábio * vlrCPDescPR := StringToFloatDef(INIRec.ReadString(sSecao, 'vlrCPDescPR', ''), 0); vlrRatDescPR := StringToFloatDef(INIRec.ReadString(sSecao, 'vlrRatDescPR', ''), 0); vlrSenarDesc := StringToFloatDef(INIRec.ReadString(sSecao, 'vlrSenarDesc', ''), 0); //28/04/2021 * Fábio * J := 1; while true do begin // de 01 até 50 sSecao := 'infoProcJud' + IntToStrZero(I, 1) + IntToStrZero(J, 2); //28/04/2021 * Fábio * sFim := INIRec.ReadString(sSecao, 'tpProc', 'FIM'); //28/04/2021 * Fábio * if (sFim = 'FIM') or (Length(sFim) <= 0) then break; with infoProc.New do begin //28/04/2021 * Fábio * tpProc := StrToTpProc(Ok, sFim); //28/04/2021 * Fábio * nrProc := INIRec.ReadString(sSecao, 'nrProc', ''); codSusp := INIRec.ReadString(sSecao, 'codSusp', ''); vlrCPNRet := StringToFloatDef(INIRec.ReadString(sSecao, 'vlrCPNRet', ''), 0); vlrRatNRet := StringToFloatDef(INIRec.ReadString(sSecao, 'vlrRatNRet', ''), 0); vlrSenarDesc := StringToFloatDef(INIRec.ReadString(sSecao, 'vlrSenarDesc', ''), 0); end; Inc(J); end; end; Inc(I); end; end; end; GerarXML; XML := FXML; finally INIRec.Free; end; end; Realizei os envios em Ambiente de Homologação utilizando a seguinte estrutura no arquivo INI: [evtAqProd] Id= Sequencial= [ideEvento] indRetif= perApur= tpAmb= procEmi= verProc= [ideContri] tpInsc= nrInsc= [ideEstabAdq] tpInscAdq= nrInscAdq= tpInscProd= nrInscProd= indOpcCP= [tipoCom1] indCom= vlrBruto= vlrCPDescPR= vlrRatDescPR= vlrSenarDesc= [infoProcJud101] tpProc nrProc= codSusp= vlrCPNRet= vlrRatNRet= vlrSenarDesc= Conclusão: Após estas adaptações, todos testes foram enviados com sucesso através do ACBrMonitor Plus 1.4.0.2. Espero ter contribuído de alguma forma com a comunidade ACBr. Obs: Units em Anexo para avaliação/validação pela equipe ACBr. pcnEventosReinf.pas pcnReinfR2055.pas