diff --git a/src/FiscalBr.Common/Sped/ArquivoSped.cs b/src/FiscalBr.Common/Sped/ArquivoSped.cs index fee9f41..9fff4dc 100644 --- a/src/FiscalBr.Common/Sped/ArquivoSped.cs +++ b/src/FiscalBr.Common/Sped/ArquivoSped.cs @@ -8,11 +8,18 @@ namespace FiscalBr.Common.Sped { public abstract class ArquivoSped { - public event EventHandler AoProcessarLinha; - protected void AoProcessarLinhaRaise(object sender, SpedEventArgs e) + public event EventHandler AoLerLinha; + protected void AoLerLinhaRaise(object sender, SpedEventArgs e) { - if (AoProcessarLinha != null) - AoProcessarLinha.Invoke(sender, e); + if (AoLerLinha != null) + AoLerLinha.Invoke(sender, e); + } + + public event EventHandler AntesEscreverLinha; + protected void AntesEscreverLinhaRaise(object sender, SpedEventArgs e) + { + if (AntesEscreverLinha != null) + AntesEscreverLinha.Invoke(sender, e); } public List Linhas { get; private set; } @@ -130,7 +137,7 @@ private int ObterPrimeiraVersaoLayout() public virtual void CalcularBloco9(bool totalizarblocos = true) { if (Linhas == null || !Linhas.Any()) - throw new Exception("Não é possível calcular o bloco 9 sem as linhas. Execute a função \"GerarLinhas()\", gere as linhas manualemnte ou leia um arquivo para preencher as linhas."); + throw new Exception("Não é possível calcular o bloco 9 sem as linhas. Execute a função \"GerarLinhas()\", gere as linhas manualmente ou leia um arquivo para preencher as linhas."); } /// @@ -161,7 +168,15 @@ protected void EscreverLinha(RegistroSped registro) if (!string.IsNullOrEmpty(erro)) Erros.Add(erro); - Linhas.Add(texto); + //permite interceptar a linha que será escrita e alterar o texto da linha + var args = new SpedEventArgs + { + Linha = texto, + Registro = registro + }; + AntesEscreverLinhaRaise(this, args); + + Linhas.Add(args.Linha); } protected virtual void GerarComFilhos(object registro) diff --git a/src/FiscalBr.EFDContribuicoes/ArquivoEFDContribuicoes.cs b/src/FiscalBr.EFDContribuicoes/ArquivoEFDContribuicoes.cs index e2eef2b..faf65de 100644 --- a/src/FiscalBr.EFDContribuicoes/ArquivoEFDContribuicoes.cs +++ b/src/FiscalBr.EFDContribuicoes/ArquivoEFDContribuicoes.cs @@ -42,7 +42,7 @@ public override void Ler(string path, Encoding encoding = null, int codVersaoLay Linha = linha, Registro = registro }; - AoProcessarLinhaRaise(this, args); + AoLerLinhaRaise(this, args); if (linha.StartsWith("|0")) LerBloco0(registro); diff --git a/src/FiscalBr.EFDFiscal/ArquivoEFDFiscal.cs b/src/FiscalBr.EFDFiscal/ArquivoEFDFiscal.cs index e41151e..434a78c 100644 --- a/src/FiscalBr.EFDFiscal/ArquivoEFDFiscal.cs +++ b/src/FiscalBr.EFDFiscal/ArquivoEFDFiscal.cs @@ -46,7 +46,7 @@ public override void Ler(string[] source) Linha = linha, Registro = registro }; - AoProcessarLinhaRaise(this, args); + AoLerLinhaRaise(this, args); if (linha.StartsWith("|0")) LerBloco0(registro); @@ -98,7 +98,7 @@ public override void Ler(string path, Encoding encoding = null, int codVersaoLay Linha = linha, Registro = registro }; - AoProcessarLinhaRaise(this, args); + AoLerLinhaRaise(this, args); if (linha.StartsWith("|0")) LerBloco0(registro);