O que é o evento - R-2010 - Retenção Contribuição Previdenciária - Tomadores de Serviços
O R-2010 é o evento responsável por levar os valores de retenção de contribuição previdenciária das notas de serviço tomado.
Quando será gerado o evento R-2010 no SPED Reinf ?
Após o envio da carga inicial, devem ser enviados os eventos periódicos. O envio dos eventos periódicos, ocorrerá mensalmente.
Neste grupo são levadas informações de retenção, contribuição previdenciária, etc.
Quais as Configurações Gerais?
Cadastro de Códigos de Serviço ISS
Em cadastros> Municipal> Código de Serviço Iss> no campo SPED Reinf preencher o Cód. Serviço
Cód. Serviço
Este campo será preenchido com o código da Classificação de Serviços Prestados mediante cessão de mão de obra/empreitada conforme tabela 06 da EFD Reinf. Essa informação será utilizada na geração do evento R-2010 (Retenção Contribuição Previdenciária – Serviços Tomados)
Cadastro de Fornecedores
Ao acessar Cadastros > Fornecedores pode-se cadastrar/editar um fornecedor.
Contribuição Previdenciária sobre a Receita Bruta (CPRB):
Essa informação será utilizada na geração do evento R-2010, deverá ser informado se o Prestador é contribuinte da Contribuição Previdenciária sobre a Receita Bruta (CPRB), a qual reduz a alíquota de 11% para 3,5% na retenção contribuição previdenciária. Deve-se selecionar as opções: Não contribuinte (11%), Contribuinte (3,5%) ou Nenhum.
Quais as configurações nas Notas de Serviços Tomados?
As configurações nas notas de serviços tomados influenciarão no evento R-2010.Haverá a aba SPED Reinf. Esta aba só será habilitada na referência igual ou superior a 01/2018.
Segue uma descrição destas configurações:
Indicativo de Prestação de Serviços em Obra de Construção Civil:
Os estabelecimentos serão identificados nota a nota através deste campo. Não é obra de construção civil: Esta opção virá marcada como padrão. Selecionando o campo “CNPJ Declarante” será preenchido automaticamente com o CNPJ da empresa selecionada na abertura do movimento.
Obra de Construção Civil – Empreitada Total:
Selecionando esta opção deverá ser preenchido o campo “CEI/CNO Prestador”.
Obra de Construção Civil – Empreitada Parcial:
Selecionando esta opção deverá ser preenchido o campo “CEI/CNO Declarante”. 17 Contrato de Empreitada Parcial é aquele celebrado com empresa construtora ou prestadora de serviços na área de construção civil, para execução de parte da obra, com ou sem fornecimento de material. Contrato de Empreitada Total é o contrato celebrado pelo proprietário, incorporador, dono da obra ou condômino, para execução de obra de construção civil, exclusivamente com empresa construtora que assume a responsabilidade direta pela execução de todos os serviços necessários à realização da obra, compreendidos em todos os projetos a ela inerentes, com ou sem fornecimento de material.
Valores não retidos:
Neste quadro serão demonstrados os valores de Contribuição Previdenciária e Aposentadoria que deixaram de ser retidos devido a algum processo administrativo/Judicial.
Notas de Conhecimento de Transporte
Com isso, no lançamento do conhecimento de transporte de entrada, nos modelos “07”, “08”, “09”, “10”, “11”, “26”, “27”, “8B”, “57”, “63” e “67”, na aba Retenções, será habilitado um quadro para se informar o valor de retenção de INSS.
Esta informação impactará o evento R-2010.
<div id="text-end"></div>
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-19PXZY9EEV"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag3(){dataLayer.push(arguments);}
gtag3('js', new Date());
gtag3('config', 'G-19PXZY9EEV');
function gtagevents (action,category) {
console.log(category + ':' + action);
gtag3('event',action,{event_category:category,event_label: document.title});
};
</script>
<script src="https://player.vimeo.com/api/player.js"></script>
<script>
(function(){
// RASTREIO DE USO DO VÍDEO
function gtagvideo(action){
gtagevents(action,'Video')
}
var iframe = document.querySelector('iframe');
var player = new Vimeo.Player(iframe);
var seeking = false;
var priorTime = 0;
var currentTime = 0;
var reportouFinalDoConteudo = false;
var reportouMetadeAssistido = false;
// se pausar o play é acionado também.
player.on('play', function(data) {
if(data.seconds == 0){
gtagvideo('video-iniciado');
}
priorTime = data.seconds;
});
player.on('ended', function() {
gtagvideo('video-finalizado');
});
//seeking e timeupdate são disparados juntos, logo o tempo dos 2 é atualizado também. Preciso garantir que a variavel starttime seja atualizada ordenadamente (sempre antes ou após o seeking).
// pra isso preciso setar uma variavel no timeupdate e ler no seeking para garantir a ordem. Se ela estiver false será alterada na próxima iteração.
player.on('seeking', function(data) {
seeking = true;
});
player.on('pause',function(data){
gtagvideo('video-pausado');
});
player.on('timeupdate', function(data) {
if(seeking){
if(currentTime < priorTime){
gtagvideo('video-voltando');
}
if(currentTime > priorTime){
gtagvideo('video-avancando')
}
seeking = false;
}
priorTime = currentTime;
currentTime = data.seconds;
var finalDoConteudo = (data.duration - data.seconds) < 5;
if(finalDoConteudo && !reportouFinalDoConteudo){
gtagvideo('video-conteudo-finalizado')
reportouFinalDoConteudo = true;
}
var metadeAssistido = data.seconds > (data.duration/2);
if(metadeAssistido && !reportouMetadeAssistido){
gtagvideo('video-metade-assistido')
reportouMetadeAssistido = true;
}
});
player.on('fullscreenchange', function() {
gtagvideo('video-fullscreen');
});
})();
</script>
<script>
// RASTREIO DO USO DE AUDIO
(function(){
function gtagaudio(action){
gtagevents(action,'Audio')
}
var audio = document.querySelector("audio");
var seeking = false;
var priorTime = 0;
var currentTime = 0;
audio.addEventListener('play',function(){
if(audio.currentTime == 0){
gtagaudio('audio-iniciado');
}
priorTime = audio.currentTime;
});
audio.addEventListener('ended',function(){
gtagaudio('audio-finalizado');
});
audio.addEventListener('pause',function(){
gtagaudio('audio-pausado');
});
audio.addEventListener('seeking', function(data) {
seeking = true;
});
audio.addEventListener('timeupdate', function(data) {
if(seeking){
if(currentTime < priorTime){
gtagaudio('audio-voltando');
}
if(currentTime > priorTime){
gtagaudio('audio-avancando')
}
seeking = false;
}
priorTime = currentTime;
currentTime = audio.currentTime;
});
})();
</script>
<script>
(function(){
const tamanhoDaTela = window.innerHeight;
let terminou = false;
let chegouNaMetade = false;
// se não remover o tamanho da tela do meio da página, o evento só será disparado quando o meio da página estiver acima da área visível.
// fazendo dessa forma assim que o meio da página estiver visível na base da janela o evento será disparado.
const meioDoTexto = (document.getElementById('text-end').getBoundingClientRect().top / 2) - tamanhoDaTela;
//RASTREIO DE LEITURA ATÉ O FINAL DA PÁGINA
document.addEventListener('scroll',() => {
if(document.getElementById('text-end').getBoundingClientRect().top < tamanhoDaTela){
if(!terminou){
terminou = true;
gtagevents('artigo-lido','Pagina')
}
}else{
terminou = false;
}
//RASTREIO DE LEITURA ATÉ O MEIO DA PÁGINA
if(meioDoTexto < window.scrollY) {
if(!chegouNaMetade){
gtagevents('artigo-lido-ate-metade','Pagina');
chegouNaMetade = true;
}
} else {
chegouNaMetade = false;
}
});
})();
</script>