xSped

#Para importar import sys sys.path.insert(0, r’D:OneDrive - De Biasi’) from xSadi import xSped as xSpd Conjunto de funções para tratamento da EFD-ICMS Rubens, 21/10/2023

#Geração de relatório consolidado pasta = r”D:PT_ARQUIVOSEFD-F” arqTxt = arq.dfArquivos.loc[arq.dfArquivos[‘ext’]==’txt’].iloc[13][‘caminho’]

dfAp = pd.DataFrame() dfAjAp = pd.DataFrame() for index, linha in tqdm(arq.dfArquivos.loc[arq.dfArquivos[‘ext’]==’txt’].iterrows(),total=arq.dfArquivos.loc[arq.dfArquivos[‘ext’]==’txt’].shape[0]):

arqTxt = linha[‘caminho’] efd = xSpd.efd_icms(caminho = arqTxt) dfAp = pd.concat([dfAp, efd.dfApICMSProp]) dfAjAp = pd.concat([dfAjAp, efd.dfAjApICMSProp])

class xSped.GeraTxtSped

Classe usada para converter um dic estruturado em sped para um Sped em TXT. Deve ser utilizada sempre como herança

class xSped.baseInsercaoEfdC

classe para carregar e validar planilha base de inserção da EFD-C

carregarExcel(caminho)

Função para carregar e validar a plnailha de inserção do sped Contribuicoes

validaBase()

Rubens, 06/03/2024: Função para verificar se a base está apta a inserção.

class xSped.baseInsercaoEfdICMS

classe para carregar e validar planilha base de inserção da EFD-ICMS

carregarExcel(caminho)

Função para carregar e validar a plnailha de inserção do sped fiscal

validaBase()

Rubens, 20/10/2023: Função para verificar se a base está apta a inserção.

class xSped.efd_c(caminho)

Arquivo de EFD-c com funções de validação da base e inserção.

ApuracaoDebito()

Stephanie, 04/09/2024 Processa os registros M210, M200, M610 e M600 para apuração de débitos.

Esta função itera sobre os registros e aplica a lógica de apuração de débitos, incluindo a conversão de valores, cálculos e arredondamentos.

Args:

self: Instância da classe que contém os dados EFD.

Returns:

None

PIS_RelItensPC(dif_min=0.05, REG_TEXTO=False)

Gera RELATÓRIO ITENS PIS_COFINS

Parâmetros:

REG_TEXTO = Informar REG_TEXTO = True para gerar texto

Args:

cnpj ([type]): [description] periodo ([type]): [description] dif_min ([type]): [description] path_rel ([type]): [description] validar ([type]): [description] dicArq ([type]): [description] tipo_rel (int, optional): [description]. Defaults to 0.

apagarConsumoCred()

Rubens, 27/03/2024 Função para apagar o cosnumo de crédito nos registros M100/M500 e desconto de crédito no registro M200/M600

carregarBaseAltercao(arq)

Rubens, 07/03 Função para carregar base alteração

consumirCreditos(consumoIntegral=True, vlrDebPis=0, vlrDebCofins=0, qtdMesesPrioridade=48, utilRetAnt=True, utilRetMes=True, retorno='0', vers='')

Rubens, 25/03/2023 Função para consumir créditos conforme prioridades de utilização. obs1:

Os créditos do mês, créditos anteriores e retenção serão utilizadas por regra integralmente. Caso queria manipular os valores fornecer os valores de PIS e COFINS nos parâmetros vlrDebPis e vlrDebCofins Os créditos são consumidos seguindo os seguintes critérios de prioridade.

Retenções são utilizadas antes do consumo dos créditos Créditos anteriores são consumidos antes dos créditos do mês Créditos vinculados as receitas tributadas no M.I. são consumidos antes dos vinculados as receitas não tributadas e de exportação

obs2:

Por padrão é gerado dois dfsApuracao (antesUtilCred) e (aposUtilCred). Verifique-os

obs3:

Após utilizar: imprimirTxt() => para gerar txt

obs4:

Por padrão é utilizado todo saldo retenção, caso seja necessário manipular os valores informar o débito a ser abatido com retenção selecionada nos camos vlrDebPis e vlrDebCofins

Parâmetros:
vlrDebPis e VlrDebCofins => Informar os valores que devem ser apurados após desconto dos créditos.

Para utilização total, informe vlrDebPis=0 e VlrDebCofins=0

qtdMesesPrioridade => Informe a quantidade de meses entre data da EFD e data da retificação

em que os créditos devam ser considerados prioritários independente da classificação

retorno:

0 = mostrar na tela e gerar html 1 = mostrar tabelas e não gerar html

vers:

informar sufixo para arquivo gerado

consumoIntegral:

consumoIntegral = False não utilizará todo o crédito disponível apurando o valor do débito remanescente

converterCreditoBaseInsercao(arquivo_xlsx, caminho_excel)

Converte o arquivo Excel para uma base de inserção e salva os dados em um novo arquivo Excel.

Args:

arquivo_xlsx (str): O caminho do arquivo Excel de entrada. caminho_excel (str): O caminho do arquivo Excel onde os dados serão salvos.

excluirRegistros(reg)

Rubens, 11/03/24 Função para exclusão de registros reg = informar uma lista de registros

Ex. reg=[‘1100’] ou reg=[‘1100’,’1500’]

Obs: Serão excluídos todos registros e seus filhos

fdicNivEFD_C()

Niveis_EFD-C

gerarAjusteCredito(reg_pai: str, reg_filho: str, caminho_excel: str)

Transforma o dicionário do registro especificado nos parâmetros em excel.

Args:

reg_pai (str): O registro pai a ser processado. reg_filho (str): O registro filho a ser processado. caminho_excel (str): O caminho do arquivo Excel onde os dados serão salvos.

Raises:

KeyError: Se as chaves necessárias não estiverem presentes no dicionário dicEFD. Exception: Para qualquer outro erro que possa ocorrer durante o processamento.

gerarBaseAltercao(gerarExcel=True, vers='', regMisto=False)

Rubens, 07/03 Função para gerar arquivo excel com base para alteração de CST dfBaseAlteracao Utilizada também para gerar apuração M410/M810 gerarExcel = True (Gera Excel) False (Não gera excel apenas observação1: Utilizar as colunas finais ‘_Novas’ para alterar as CSTS. Indiquee ‘X’ na coluna ‘CST_NOVA’ para excluir linhas do arquivo.

Não há exclusão parcial, excluir um dos registros filhos, excluirá o registro PAI

obs2: após trabalhar a base no excel utilizar as seguintes funções

carregarBaseAltercao => para subir o excel trabalhado, informar o caminho do arquivo excel processarAlteracoes => para alterar no arquivo da EFD-C com base na planilha de alteracao imprmirTxt => para gerar uma nova EFD-C

obs3: Utilizar o parâmetro ‘vers’ caso queira diferenciar a versao da base gerada

Obs4: regMisto

Para rateio específicos utilizar regMist=True e indicar nas colunas da base inserção os respectivos percentuais e valores. Gerar a base gerarBaseAltercao indicado regMisto=True para indicação das colunas

%PercCum %PercNc100 %PercNc200 %PercNc300 BaseCum BaseNc100 BaseNc200 BaseNc300

gerarBaseInsercao(gerarExcel=True, vers='', gerarCadastros=True)

Rubens, 08/03/24 Função para gerar arquivo excel com base para inserção de registros na EFD-C gerarExcel = True (Gera Excel) False (Não gera excel apenas o data Frame) observação1: Seguir as colunas para inserção do registro.

lIncluir cadastro caso não tenha no arquivo

observação2: após trabalhar a base no excel utilizar as seguintes funções

baseInsercao.carregarExcel => para subir o excel trabalhado, informar o caminho do arquivo excel baseInsercao.validaBase => para validar se a base insercao está apta a ser inserida inserir => para incluir os novos registros na EFD-C imprmirTxt => para gerar uma nova EFD-C

observação3: Utilizar o parâmetro ‘vers’ caso queira diferenciar a versao da base gerada observação4: Para alterar dados na EFD-C verificar orientações na função gerarBaseInsercao

gerarBlocoM(dicPercRateio={}, regMisto=False)

Rubens, 19/03 Função para geração do blocoM.

Obs1: A apuração é gerada conforme base dfBaseAlteracao pois utiliza o campo NAT_REC_M400. Utilizar função ‘gerarBaseAltercao’ tratar no excel e de pois usar a função carregarBaseAltercao para subir com a classificação

Obs2: Informar rateios no padrão abaixo. Caso não seja informado, o rateio será apurado conforme registro 0111

dicPercRateio={‘100’: 0.09233914394721923,

‘200’: 0.46164794655077146, ‘300’: 0.4460129095020093}

Obs3: A Base inserção será apagada para inserção dos registros. Após geração seguir com os passos:

baseInsercao.validaBase() self.inserir()

Gerar gerarDfsApuracao e conferir valores. Se necessário ajustar.

Após utilizar (vide orientações em cada função):

importarSaldosCreditos() => para importar saldos de créditos anteriores consumirCreditos() => para utilização dos créditos imprimirTxt() => para gerar txt

Obs4: regMisto

Para rateio específicos utilizar regMist=True e indicar nas colunas da base inserção os respectivos percentuais e valores. Gerar a base gerarBaseAltercao indicado regMisto=True para indicação das colunas

%PercCum %PercNc100 %PercNc200 %PercNc300 BaseCum BaseNc100 BaseNc200 BaseNc300

gerarDfsApuracao(retorno='0', vers='')

Rubens, 20/03/24 Função para gerar relatórios de apuração da EFD-C Parêmtro retorno:

0 = Gerar tabelas, mostrar na tela e gerar html 1 = Gerar tabelas e gerar html 2 = Gerar tabelas somente

Parâmetro vers:

informar sufixo para arquivo gerado

gerarRegistros(dicReg)

Rubens 11/03 retorna dataframe com registro e filhos Passar o dicReg conforme exemplo dicReg = {‘C100’:[‘C170’]}

importarSaldosCreditos(efdAnt)

Rubens, 21/03 Função para importar saldos remanescentes de crédito de arquivo anterior da EFD-C Parâmetros: efdAnt = arquivo da efdc anterior previamente carregado.

para carregar a efdc anterior, siga o exemplo: caminho=r”D:OneDrive - De Biasiefdcmesanterior.txt” efdAnt=xSpd.efd_c(caminho)

agora passar efdAnt para a função .importarSaldosCreditos(efdAnt)

imprimirTxt(vers='', reciboAnt='', tipoEscrit='1')

Rubens, 19/10/2023: Método herdado da classe GeraTxtSped do SpedTools Parâmetros: ‘vers’: versao no nome do arquivo

‘recibo’: Numero do recibo da EFD a ser retificada ‘tipoEscrit’: ‘1’: EFD Retificadora

‘0’: EFD Original

inserir()

Método que verifica a consistência interna da base inserção e se validada aplica o método de inserção

processarAltercaoes()

Rubens, 01/03: Função para processar basealteracao

substituirCST(listaRegPai, dicCstAlteracao)

Rubens, 18/03/24 Função para substiuir CSTs no modelo de/para. Parâmetros:

listaRegPai = Lista com os registros Pais dos quais deseja alterar a CST dos filhos

Ex: listaRegPai=[‘C500’,’C100’,’D100’,’F100’]

dicCstAltercaco = mapeamento das alterações que gostaria de fazer

Ex: dicCstAlteracao={‘54’:’56’}

zerarCreditos()

Stephanie, 04/09/2024 Zera os créditos nos registros M100, M200, M500 e M600.

Esta função processa os registros M100, M200, M500 e M600 para zerar os créditos e ajustar os valores conforme necessário. A função itera sobre os registros e aplica a lógica específica para cada tipo de registro.

Funções internas: - alterar_m100: Processa registros M100. - alterar_m500: Processa registros M500. - alterar_m200: Processa registros M200. - alterar_m600: Processa registros M600.

As funções alterar_m100 e alterar_m500 são semelhantes e seguem a mesma lógica. As funções alterar_m200 e alterar_m600 são semelhantes e seguem a mesma lógica.

Returns:

None

class xSped.efd_icms(caminho)

Arquivo de EFD-ICMS com funções de validação da base e inserção.

excluirRegistros(reg)

Rubens, 11/03/24 Função para exclusão de registros reg = informar o registro ou uma lista de registros Obs: Serão excluídos todos registros e seus filhos

fdicNivEFD_F()

Niveis_EFD-ICMS

gerarApurICMSProp()

Rubens, 23/11/2023: Função para retornar

gerarBaseInsercao(gerarExcel=True, vers='')

Rubens, 13/03/24 Função para gerar arquivo excel com base para inserção de registros na EFD-C gerarExcel = True (Gera Excel) False (Não gera excel apenas o data Frame) observação1: Seguir as colunas para inserção do registro.

lIncluir cadastro caso não tenha no arquivo

observação2: após trabalhar a base no excel utilizar as seguintes funções

baseInsercao.carregarExcel => para subir o excel trabalhado, informar o caminho do arquivo excel baseInsercao.validaBase => para validar se a base insercao está apta a ser inserida inserir => para incluir os novos registros na EFD-ICMS imprmirTxt => para gerar uma novo ICMS

observação3: Utilizar o parâmetro ‘vers’ caso queira diferenciar a versao da base gerada

gerarRegistros(dicReg)

Rubens 11/03 retorna dataframe com registro e filhos Passar o dicReg conforme exemplo dicReg = {‘C100’:[‘C170’]}

imprimirTxt(vers='')

Rubens, 19/10/2023: Método herdado da classe GeraTxtSped do SpedTools

inserir()

Método que verifica a consistência interna da base inserção e se validada aplica o método de inserção

class xSped.grupoEfd_c(arquivos)

Rubens, 11/03/24 Extração de relatórios e análises em conjuntos de EFD-C.

A classe recebe o objeto ‘arquivos’.

para filtrar os arquivos que serão utilizados na geração do relatório. Atualize o dfArqEfd.

gerarRegistros(dicReg)

Rubens 11/03 retorna dataframe com registro e filhos Passar o dicReg conforme exemplo dicReg = {‘C100’:[‘C170’]}

class xSped.grupoEfd_icms(arquivos)

Rubens, 13/03/24 Extração de relatórios e análises em conjuntos de EFD-ICMS Recebe data frame com arquivos. Utilizar arquivos = xArq.arquivos(pastaArquivos=pasta)

gerarApurICMSProp()

Rubens, 23/11/2023: Função para retornar

gerarRegistros(dicReg)

Rubens 11/03 retorna dataframe com registro e filhos Passar o dicReg conforme exemplo dicReg = {‘C100’:[‘C170’]}

xSped.montarChave(par1, par2, par3....)
Parameters:

separador

:param args:* :return: par1_par2_par3….

xSped.normaliza_full_fatality(txt)

A remoção de acentos foi baseada em uma resposta do Stack Overflow. http://stackoverflow.com/a/517974/3464573 Se nada resolver isso resolve. kkkk