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