Jump to content

dev botao

Ajuste no evento S-2206 campo tpRegJor


Joceandro Perin
Go to solution Solved by Italo Giurizzato Junior,
  • Este tópico foi criado há 2281 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Consultores
  • Solution

Boa tarde Joceandro,

Muito obrigado pela colaboração, assim que possível vou enviar para o repositório.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link to comment
Share on other sites

bom dia, no evento S2999, o xml não gera as verbas de rescisão se não contiver pagamentos anteriores, comentei a linha abaixo e foi gerado normalmente as verbas. acredito que isso resolva mas não tenho conhecimento profundo de componentes. segue anexo a unit comentada.

procedure TEvtDeslig.GerarDmDev(pDmDev: TDmDevCollection);
var
  i: integer;
begin
  for i := 0 to pDmDev.Count - 1 do
  begin
    Gerador.wGrupo('dmDev');

    Gerador.wCampo(tcStr, '', 'ideDmDev', 1, 30, 1, pDmDev.ideDmDev);

//    if pDmDev.infoPerAntInst then
      GerarInfoPerApur(pDmDev.infoPerApur);

    if pDmDev.infoPerAntInst then
      GerarInfoPerAnt(pDmDev.infoPerAnt);

    GerarInfoTrabInterm(pDmDev.infoTrabInterm);

    Gerador.wGrupo('/dmDev');
  end;

  if pDmDev.Count > 50 then
    Gerador.wAlerta('', 'dmDev', 'Lista de Demonstrativos', ERR_MSG_MAIOR_MAXIMO + '50');
end;
 

pcesS2299.pas

Link to comment
Share on other sites

  • Consultores

Bom dia,

Que eu saiba o grupo <infoPerApur> é opcional só deve ser gerado se não for gerado o grupo <infoPerAnt> ou se existir alguma informação referente ao grupo <infoPerApur>.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link to comment
Share on other sites

Bom dia Italo, tudo bem ?

Estou com um problema no eSocial e gostaria de saber se você pode me ajudar, esta funcionando tudo perfeitamente mas o problema é quando acontece algum erro no evento, segue um exemplo abaixo, abaixo esta como ocorrência 0 ,1 e 3, e pode ser que no envio ele esteja em outro id, como mostrar qual o registro foi errado, como identificar, neste exemplo enviei 50 eventos da tabela de cargos s-1030, 3 estão errados, obrigado.

 

 Ocorrencia 0
   Código:252
   Descrição: CBO inválido.
Ação Sugerida: O valor informado no campo deverá existir na Tabela de CBO.
   Tipo: 1
   Localização:/eSocial/evtTabCargo/infoCargo/inclusao/dadosCargo/codCBO

Link to comment
Share on other sites

  • Consultores

Boa tarde fabibona,

Se ao gerar o evento, antes do seu envio você guardar o ID do mesmo no banco de dados, ao consultar o lote, você pode comparar esse ID com o ID da lista de eventos retornados e assim saber quais eventos foram processados com sucesso e quais não foram.

Para ler o ID após gerar o evento faça assim:

(por exemplo)  ACBreSocial1.Eventos.NaoPeriodicos.S3000.Items[ x ].EvtExclusao.Id
 

Para ler o ID do retorno faça assim:

    ACBreSocial1.WebServices.ConsultaLote.RetConsultaLote.RetEventos.items[ x ].Id
 

Se esses dois ID foram iguais você tem ai o resultado do processamento do respectivo evento.

Espero ter ajudado.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link to comment
Share on other sites

51 minutos atrás, Italo Jurisato Junior disse:

Boa tarde fabibona,

Se ao gerar o evento, antes do seu envio você guardar o ID do mesmo no banco de dados, ao consultar o lote, você pode comparar esse ID com o ID da lista de eventos retornados e assim saber quais eventos foram processados com sucesso e quais não foram.

Para ler o ID após gerar o evento faça assim:

(por exemplo)  ACBreSocial1.Eventos.NaoPeriodicos.S3000.Items[ x ].EvtExclusao.Id
 

Para ler o ID do retorno faça assim:

    ACBreSocial1.WebServices.ConsultaLote.RetConsultaLote.RetEventos.items[ x ].Id
 

Se esses dois ID foram iguais você tem ai o resultado do processamento do respectivo evento.

Espero ter ajudado.

Boa tarde Italo,

Eu pensei que tinha uma forma automática de pegar o erro com o mesmo id, eu achei que quando enviamos o id, ela ficava guardada naquele respectivo protocolo e quando consultado o lote quando houvesse erro retornaria no mesmo id enviado, mas não ele começa como ocorrencia 0 em diante, então tenho que fazer o que você sugeriu, guardar o id na hora do envio do evento e depois comparar com o do retorno qual esta com erro, não vai ter outro jeito, se pelo meno no retorno viesse mais informações, por exemplo o nome do funcionário ou o nome do cargo ficaria muito mais fácil para tratar o erro

Obrigado pela ajuda.

Link to comment
Share on other sites

Postem em novo tópico sua duvida.

 Id so fica disponivel depois de execuat o salvaxml

ai vc teriq que varrem os items e capturar o id.

eu adotei enviar o sequencial que sao os ultimos 6 digitos do id.

e como cada evento tem um sequencial fica facil gerar e no retorno saber qual evento e sequencia aquele id se refere

Link to comment
Share on other sites

17 horas atrás, Italo Jurisato Junior disse:

Boa tarde fabibona,

Se ao gerar o evento, antes do seu envio você guardar o ID do mesmo no banco de dados, ao consultar o lote, você pode comparar esse ID com o ID da lista de eventos retornados e assim saber quais eventos foram processados com sucesso e quais não foram.

Para ler o ID após gerar o evento faça assim:

(por exemplo)  ACBreSocial1.Eventos.NaoPeriodicos.S3000.Items[ x ].EvtExclusao.Id
 

Para ler o ID do retorno faça assim:

    ACBreSocial1.WebServices.ConsultaLote.RetConsultaLote.RetEventos.items[ x ].Id
 

Se esses dois ID foram iguais você tem ai o resultado do processamento do respectivo evento.

Espero ter ajudado.

Depois de gerar o xml.

e so varrer o evento e pegar o id.

ou ao gerar o evento

evento.sequencial , este e so os ultimos 6 digitos do Id

Edited by EdmarFrazao
Link to comment
Share on other sites

3 horas atrás, Curitiba Computer Ltda disse:

eu tentei com ACBreSocial1.Eventos.Iniciais.S1000.Items .evtInfoEmpregador.Id mas nao tem for-next para identificar Items , dai fiquei sem recurso. como voce escreve a linha e dentro de qual estrutura?
estou tentando dentro de with eSocial.WebServices.EnvioLote.RetEnvioLote do 

 

Não estou no computar p testar mas

ACBreSocial1.Eventos.NaoPeriodicos.S3000.Items[ x ].EvtExclusao.Id

depois q gera o xml o obj tem o id atualizado

basta trocar s3000 p o evento q deseja, .items.count 

seria

gera xml depois ler o id

For x:=0 to ACBreSocial1.Eventos.NaoPeriodicos.S3000.Items.count -1

begin

ACBreSocial1.Eventos.NaoPeriodicos.S3000.Items[ x ].EvtExclusao.Id

end

Link to comment
Share on other sites

edmar, eu fiz exatamente dessa forma mas ACBreSocial1.Eventos.NaoPeriodicos.S3000.Items.count -1 nao tem items.count. 

por isso a dificuldade...

meu bloco...

      eSocial.assinareventos;

      eSocial.enviar (TESocialGrupo(1));
      sleep (3000);

      identificacao:= '';
      mmoRet.Lines.Text := eSocial.WebServices.EnvioLote.RetWS;
      with mmoStatus.Lines do
      begin
        with eSocial.WebServices.EnvioLote.RetEnvioLote do
        begin
          identificacao:= inttostr (eSocial.Eventos.Iniciais.S1000.items [0].evtInfoEmpregador.Sequencial);

          for I:= 0 to Status.Ocorrencias.Count - 1 do
          begin
            identificacao:= iif (tabela='S1000', eSocial.Eventos.Iniciais.S1000.Items.evtInfoEmpregador.Id,
                            iif (tabela='S1005', eSocial.Eventos.Iniciais.S1005.Items.evtTabEstab.Id,
                            iif (tabela='S1010', eSocial.Eventos.Tabelas.S1010.Items.EvtTabRubrica.Id,
                            iif (tabela='S1020', eSocial.Eventos.Tabelas.S1020.Items.EvtTabLotacao.Id,
                            iif (tabela='S1030', eSocial.Eventos.Tabelas.S1030.Items.EvtTabCargo.Id,
                            iif (tabela='S1035', eSocial.Eventos.Tabelas.S1035.Items.evtTabCarreira.Id,
                            iif (tabela='S1040', eSocial.Eventos.Tabelas.S1040.Items.EvtTabFuncao.Id,
                            iif (tabela='S1050', eSocial.Eventos.Tabelas.S1050.Items.EvtTabHorContratual.Id,
                            iif (tabela='S1060', eSocial.Eventos.Tabelas.S1060.Items.EvtTabAmbiente.Id,
                            iif (tabela='S1070', eSocial.Eventos.Tabelas.S1070.Items.EvtTabProcesso.Id,
                                                 eSocial.Eventos.Tabelas.S1080.Items.EvtTabOperPortuario.Id))))))))));
          end;
 

Edited by Curitiba Computer Ltda
Link to comment
Share on other sites

Nao temo com testar,

mas cada evento e uma matriz

Gera os xml, antes de envira

eSocial.Eventos.Iniciais.S1005.Items[x].evtTabEstab.Id

 

ja  o retorno e diferente o id , mensagem etc e em outra propriedade, veja o demo

 

          for I:= 0 to Status.Ocorrencias.count-1

          for I:= 0 to Status.Ocorrencias.propriedade n lembro o nome

tem varias propriedades dentro de ocorrencias

 

 

 

 

 

Edited by EdmarFrazao
Link to comment
Share on other sites

  • Este tópico foi criado há 2281 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.