Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tem umas sugestões aqui que eu gostaria de fazer, porém elas quebram algumas assinaturas #145

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

figloalds
Copy link

@figloalds figloalds commented Feb 11, 2025

Durante o processamento de RegistroSped tem uma chamada que obtém uma lista de propriedades da classe de forma ordenada e isso é chamado pra cada Registro. Cada nota, cada item de nota, cada qualquer coisa que vai no SPED, essa lista ordenada pode ficar em cache pra melhorar a eficiência da rotina de escreverlinha

Outra alteração que eu fiz foi alterar a forma como cada campo é escrito, pois da forma como estava ele era passado como string pra uma função e dentro da função ele era convertido de volta pra datetime/decimal/int pra depois ser convertido pra string de novo, isso pode ter um impacto grande considerando que essa função está diretamente no caminho crítico da geração do arquivo, sendo chamada centenas de milhares de vezes. A alteração que eu fiz pra mitigar isso altera as assinaturas dessas funções, recebendo object ao invés de string:

Na interface ISped:

string PreencherCampo(string valor, string tpAttr, string tpProp, int tamanho, int qtdCasas, bool ehObrigatorio);
string PreencherCampo(object valor, string tpAttr, string tpProp, int tamanho, int qtdCasas, bool ehObrigatorio);

Na classe EscreverCamposSped:

private static string EscreverCampo(this string valorEscrever,
            Tuple<InformationType, InformationType, bool, int, int> info)
private static string EscreverCampo(object valorEscrever,
    Tuple<InformationType, InformationType, bool, int, int> info)

Apesar da interface ISped ser pública no meu entendimento ela e esse método tem como intuito ser usado internamente para a gravação de dados das classes para as strings do arquivo SPED

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant