Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
    Roberto L. Machado
    @robmachado
    Sim funciona a API está sendo usada para envio em produção !
    Sim tem todos os EVENTOS
    johnzreis
    @johnzreis
    Eaí gurizada, tem alguém tentando o envio do R-2099? Percebi que eles estão retornando um ID diferente do que eu to enviando pra eles, o que ta dificultando o desenvolvimento aqui...
    Alguém passou por isso?
    johnzreis
    @johnzreis
    de atributo na tag <evtTotalContrib>
    Ícaro R. Scherma
    @icaroscherma
    Opa @robmachado , vi tua resposta hoje pela manhã da #70 ... Estou pesquisando aqui como fazer pq uma Federação de Indústria acredito que seria o Grupo 3 (enviar até 15 de junho os eventos de maio), então eu precisaria do evento R1000 -> R-1070 e o fechamento do R-1070. Não entraria os detalhes do R-2070 no R-1070, correto?
    Aí quando o layout 2.0 for disponibilizado, se vier o layout do R-2070, passaremos a incluir os eventos e anexá-lo ao R-1070 antes do fechamento.
    Roberto L. Machado
    @robmachado
    O evento 2070 não existe nem no layout 1.4 e nem no futuro layout 2.0 (que entra em vigor em 2020).
    Ícaro R. Scherma
    @icaroscherma
    @robmachado no caso de Retenções na Fonte (IR,CSLL,Cofins,PIS/PASEP), não há como então não tem obrigatoriedade de envio ne?
    =x
    Roberto L. Machado
    @robmachado

    EFD-Reinf – Ao aprovar a versão 1.4 da EFD-Reinf – Escrituração Fiscal Digital de Retenções e Outras Informações Fiscais, em setembro/2018, a Receita Federal do Brasil suprimiu o evento R-2070, o que representou a mais importante alteração nos leiautes promovida na ocasião. Era neste evento que as empresas deveriam prestar as informações relacionadas à retenção do Imposto de Renda e das Contribuições Sociais (CSLL, PIS/Pasep e Cofins), tanto nos pagamentos a pessoas jurídicas, como também a pessoas físicas, neste último caso, apenas em relação ao IRRF e somente nos casos em que a operação já não está abrangida pelo eSocial.

    No próprio site do SPED na Internet (veja AQUI) consta a informação de que “As informações que substituirão a DIRF serão escrituradas através de novos eventos a serem publicados em versão futura, juntamente com o seu novo cronograma de obrigatoriedade.” Isto é, a supressão do R-2070 está longe de representar a exclusão dos eventos do projeto. Foi apenas uma saída temporária.

    Embora não haja ainda, em outubro/2018, informação oficial a respeito, já se sabe que dentro de algum tempo a RFB vai criar os seguintes eventos periódicos em substituição ao R-2070:

    R-4010 – Retenção Efetuada na fonte de Pessoa Física
    R-4020 – Retenção Efetuada na fonte de Pessoa Jurídica
    R-4030 – Retenção Sofrida na fonte por Pessoa Jurídica
    R-4040 – Pagamentos a beneficiários não identificados.

    Interessante observar que, diferentemente do que existia em relação ao R-2070, as empresas que sofrerem a retenção de tributos federais também terão que prestar informações. Isso permitirá ao Fisco criar uma espécie de sistema de malha fina muito mais dinâmico e aprimorado do que o existente na atualidade, com informações fragmentadas (DCTF, DIRF, EFD-Contribuições) e sincronizações precárias.

    A conclusão é que, em relação às retenções aqui examinadas, a RFB pretende exigir informações mais depuradas, mas precisamos aguardar a publicação dos leiautes para confirmar se o nível de detalhamento será semelhante àquele exigido nos eventos que tratam da Retenção de INSS na Cessão de Mão de Obra e Empreitada (R-2010 e R-2010).

    Ícaro R. Scherma
    @icaroscherma

    Primeiramente obrigado pelos detalhes nas explicações :D
    Eu estava pesquisando uma forma de implementar pois uma Federação de Indústria entrou em contato pedindo uma forma de facilitar puxar as NF-e pois usam "somente" o R-2070. Vi alguns sistemas que alegam ter essa funcionalidade, como Questor e ZeusRio-REINF, no caso como o leiaute quando é atualizado (na Receita/Fazenda) passa a ser obrigatório a migração para versão mais nova, esses programas não enviam mais o R-2070.

    Se eu entendi tudo correto, devo entrar em contato com o pessoal da Federação para ver o que de fato os contadores pretendem enviar a partir de Maio já que não tem mais R-2070.

    Roberto L. Machado
    @robmachado
    É por ai !! mesmo
    Ícaro R. Scherma
    @icaroscherma
    Agora uma dúvida sobre o repositório em si... você tem algum roadmap em mente ou algo que está sem tempo e que eu poderia ajudar? Documentação, exemplos, site estático pro github io, algum bug ou integração continua...
    Porque como devo utilizá-lo, o minimo que posso fazer é ajudar a comunidade.
    Roberto L. Machado
    @robmachado
    Olha @icaroscherma podemos marcar um hangout e você pode expor suas ideias, eu sempre preciso e gosto de ajuda !! qualquer ajuda :)
    Ícaro R. Scherma
    @icaroscherma
    Pronto :D Você prefere horário comercial ou à noite?
    Roberto L. Machado
    @robmachado
    Comercial !!
    meu email, se você ainda não tem é linux.rlm@gmail.com
    Ícaro R. Scherma
    @icaroscherma
    Pronto, amanhã se tiver algum tempo, tenho somente 1 reunião pela manhã, ao chegar mando msg. =)
    Tinha pego no teu github profile
    Roberto L. Machado
    @robmachado
    Sem problema amanhã é um bom dia !
    Ícaro R. Scherma
    @icaroscherma
    Opa @robmachado , boa tarde =) Não sumi, estava organizando as coisas com o contador e agora tenho uma resposta dos eventos que de fato irão utilizar... já rodei alguns eventos via SoapFake...
    Uma dúvida que ficou é... para pegar o retorno como um array ou php object no lugar de uma string xml, só basicamente assim ne:
    $response = $tools->consultar($tools::CONSULTA_R1000, null);
    $body = json_decode($response)->body;
    $body = str_replace('sped:', '', $body); // removo o namespace `sped:` da string xml, que irá remover dos atributos após parsed
    $response = preg_replace("/(<\/?)(\w+):([^>]*>)/", "$1$2$3", $body);
    $xml = new \SimpleXMLElement($response);
    $xmlBody = $xml->xpath('//ConsultaReciboEvento1000')[0]; // raiz que me é útil
    $object = json_decode(json_encode((Array)$xmlBody)); 
    print_r($object);
    e a classe a ser utilizada quando for na prática é o NFePHP\Common\Soap\SoapNative, certo?
    Roberto L. Machado
    @robmachado
    Não é bem assim !
    A classe de comunicação é a SoapCurl mas não é necessário setar , será usada como DEFAULT
    Quanto a passa o XML para stdclass pode usar a classe Standardize()
    Ícaro R. Scherma
    @icaroscherma
    não é necessário setar <<< mas é a instância do exemplo que eu estou tomando como base, só irei trocar a classe instanciada e colocar para não ignorar a o token (certificado digital) expirado.
    Sobre o Standardize, eu tenho que adicionar mais parametros no $rootTagList como ConsultaReciboEvento1000, certo? Senão ele me traz Este xml não pertence ao projeto eSocial..
    Ícaro R. Scherma
    @icaroscherma
    Que aí após adicionar na $rootTagList, passando assim, também dá certo:
    $body = json_decode($response)->body;
    $body = str_replace('sped:', '', $body);
    $teste = new Standardize($body);
    dd($teste->toStd());
    image.png
    Roberto L. Machado
    @robmachado
    UPS!! então deve haver algum LIXO no repositório ainda. Assim que der tempo dou uma olhada
    Ícaro R. Scherma
    @icaroscherma
    Eu vi que o arquivo do Standardize não está o mais atual (composer nao deve puxar o mais recente na dependencia do sped-reinf), mas mesmo o atual não puxa com essas infos de consulta. Não tem pressa… estou mexendo em tudo… mais tarde devo já ter em mãos alguns certificados válidos, aí farei mais testes no produção restrita deles. Aí vou documentando e conforme achar necessário já faço um PR.
    Ícaro R. Scherma
    @icaroscherma

    Opa @robmachado , bom dia! Nos registros de alteração, a chave que a receita pede de origem é o sequencial que enviamos anteriormente?

    Exemplo: Envio o Evento R1000 de inclusão com o sequencial (auto-increment meu), mas noto que digitei o numero do contato errado, aí gero um novo registro de evento R1000 do tipo alteração e envio todos os dados dele só que o sequencial, no lugar de puxar o auto-increment, eu defino manualmente com o ID do que eu enviei anteriormente como inclusão?

    Roberto L. Machado
    @robmachado
    @icaroscherma Acredito que você não entendeu como os eventos funcionam. O "sequencial" é um numero crescente para o evento em questão. Se é o primeiro envio será sequencial = 1 se for fazer uma alteração no mesmo evento será sequencial =2 e assim por diante. E isso vale para o eSocial também. Ou seja esse sequencial é como o AUTOINCREMENT de uma tabela e é usado para construir um ID único para cada evento enviado. Notando que esse "sequencial" começa do 1 para cada tipo de evento diferente.
    Ícaro R. Scherma
    @icaroscherma
    Estou fazendo desse jeito, mas no caso que o evento não é uma inserção, é uma alteração, estou recebendo o seguinte erro: Registro não existe na tabela com a mesma chave e período de validade informados no evento.
    Roberto L. Machado
    @robmachado
    Outra coisa é muito mas muito IMPORTANTE guardar o evento enviado com sucesso e o seu respectivo retorno, para pegar essas informações como o ID anterior e o numero do recibo da resposta.
    Ícaro R. Scherma
    @icaroscherma
    Também estou seguindo essa dica que tinha me passado :D
    Guardo o ID, certificado, tipo, status, dados enviados, data de envio, xml recebido, data de recepção e qm foi o autor (no sistema).
    Eu enviei um R1000 de inserção, deu certo. Reenviei no msm período como inserção aí ele disse que já havia um evento cadastrado para esse período, aí a retificação pelo que vi, seria no lugar de inserção (INC) colocar como alteração (ALT), mas quando o faço, ele dá esse erro acima, que não tem registro com a mesma chave para ser editado.
    Roberto L. Machado
    @robmachado
    Bom nesse caso replique a chave anterior e veja o resultado
    Ícaro R. Scherma
    @icaroscherma
    certo
    Roberto L. Machado
    @robmachado
    Mas o mais provável é que você não esteja enviando o mesmo período de validade da mensagem inicial ou ainda esteja alterando o tpInsc ou nrInsc
    Ícaro R. Scherma
    @icaroscherma
    na verdade acho que é isso, do periodo original bater.
    só estou vendo se tem como conferir os eventos que já enviei, pelo $tools->consultar($tools::CONSULTA_R1000);
    minah assiduidade nesse projeto ta baixa =x
    Ícaro R. Scherma
    @icaroscherma
    image.png
    não tem como ver os períodos “completos” enviados? pq só tem a data inicial =(
    Ícaro R. Scherma
    @icaroscherma
    mas em resumo, meu erro:
    image.png
    Ícaro R. Scherma
    @icaroscherma
    Consegui resolver, falei pro Roberto ja, mas caso alguém entre aqui com msm bronca, o período só tinha o iniValid, e eu sempre estava enviando o fimValid… aí por isso o erro, o sequencial pode ser um auto-increment da sua tabela msm, n precisa ter vinculo, e como deu p perceber, é opcional o fimvalid
    Ícaro R. Scherma
    @icaroscherma
    R1000 e R1070 que eram para serem enviados até hoje foram adiados para fevereiro, seguindo o cronograma do eSocial :/