Skip to content

Commit 267b09c

Browse files
committed
[IMP] heuristic to catch EFD_PIS_COFINS's registers
1 parent 449d3f5 commit 267b09c

File tree

4 files changed

+162
-3
lines changed

4 files changed

+162
-3
lines changed

scripts/build_csv.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ def natural_keys(text):
9797
def clean_row(row):
9898
# Clean content
9999
for index, cell in enumerate(row):
100-
# replace all whitespaces (" ", \n, \r...)
100+
# replace all the whitespaces (" ", \n, \r...)
101101
clean_cell = " ".join(cell.split())
102102
# e.g. change "Entr." to "Entr" in fields table's headers
103103
if re.match(r"^[a-zA-Z]+\.$", clean_cell):
@@ -145,10 +145,11 @@ def _map_register_row(mod, row):
145145
}
146146
# the most problematic pdf
147147
elif mod == "efd_pis_cofins":
148-
if len(row[2]) == 4 and len(row) >= 5:
148+
code = row[2][:-4] if row[2].endswith(" (*)") else row[2]
149+
if len(code) == 4 and len(row) >= 5:
149150
register = {
150151
"block": row[0],
151-
"code": row[2],
152+
"code": code,
152153
"desc": row[1],
153154
"level": row[3],
154155
"card": row[4],

specs/efd_pis_cofins/efd_pis_cofins_accurate_fields.csv

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -491,6 +491,81 @@
491491
"C605","174","07","COD_CTA","Código da conta analítica contábil debitada/creditada","C","255","-","N"
492492
"C609","175","02","NUM_PROC","Identificação do processo ou ato concessório","C","020","-","S"
493493
"C609","175","03","IND_PROC","Indicador da origem do processo: 1 - Justiça Federal; 3 – Secretaria da Receita Federal do Brasil 9 – Outros.","C","001*","-","S"
494+
"C800","177","02","COD_MOD","Código do modelo do documento fiscal, conforme a Tabela 4.1.1","C","002","-","S"
495+
"C800","177","03","COD_SIT","Código da situação do documento fiscal, conforme a Tabela 4.1.2","N","002","-","S"
496+
"C800","177","04","NUM_CFE","Número do Cupom Fiscal Eletrônico","N","009","-","S"
497+
"C800","177","05","DT_DOC","Data da emissão do Cupom Fiscal Eletrônico","N","008","-","S"
498+
"C800","177","06","VL_CFE","Valor total do Cupom Fiscal Eletrônico","N","-","02","S"
499+
"C800","177","07","VL_PIS","Valor total do PIS","N","-","02","N"
500+
"C800","177","08","VL_COFINS","Valor total da COFINS","N","-","02","N"
501+
"C800","177","09","CNPJ_CPF","CNPJ ou CPF do destinatário","N","14","-","N"
502+
"C800","177","10","NR_SAT","Número de Série do equipamento SAT","N","009","-","N"
503+
"C800","177","11","CHV_CFE","Chave do Cupom Fiscal Eletrônico","N","044","-","N"
504+
"C800","177","12","VL_DESC","Valor total do desconto/exclusão sobre item","N","-","02","N"
505+
"C800","177","13","VL_MERC","Valor total das mercadorias e serviços","N","-","02","N"
506+
"C800","177","14","VL_OUT_DA","Valor de outras desp. Acessórias (acréscimo)","N","-","02","N"
507+
"C800","177","15","VL_ICMS","Valor do ICMS","N","-","02","N"
508+
"C800","177","16","VL_PIS_ST","Valor total do PIS retido por subst. trib.","N","-","02","N"
509+
"C800","177","17","VL_COFINS_ST","Valor total da COFINS retido por subst. trib.","N","-","02","N"
510+
"C810","179","02","CFOP","Código fiscal de operação e prestação","N","004","-","S"
511+
"C810","179","03","VL_ITEM","Valor total dos itens","N","-","02","S"
512+
"C810","179","04","COD_ITEM","Código do item (campo 02 do Registro 0200)","C","060","-","N"
513+
"C810","179","05","CST_PIS","Código da Situação Tributária referente ao PIS/PASEP","N","002*","-","S"
514+
"C810","179","06","VL_BC_PIS","Valor da base de cálculo do PIS/PASEP","N","","02","N"
515+
"C810","179","07","ALIQ_PIS","Alíquota do PIS/PASEP (em percentual)","N","008","04","N"
516+
"C810","179","08","VL_PIS","Valor do PIS/PASEP","N","-","02","N"
517+
"C810","179","09","CST_COFINS","Código da Situação Tributária referente a COFINS","N","002*","-","S"
518+
"C810","179","10","VL_BC_COFIN S","Valor da base de cálculo da COFINS","N","","02","N"
519+
"C810","179","11","ALIQ_COFINS","Alíquota da COFINS (em percentual)","N","008","04","N"
520+
"C810","179","12","VL_COFINS","Valor da COFINS","N","-","02","N"
521+
"C810","179","13","COD_CTA","Código da conta analítica contábil debitada/creditada","C","255","-","N"
522+
"C820","181","02","CFOP","Código fiscal de operação e prestação","N","004*","-","S"
523+
"C820","181","03","VL_ITEM","Valor total dos itens","N","-","02","S"
524+
"C820","181","04","COD_ITEM","Código do item (campo 02 do Registro 0200)","C","060","-","N"
525+
"C820","181","05","CST_PIS","Código da Situação Tributária referente ao PIS/PASEP","N","002*","-","S"
526+
"C820","181","06","QUANT_BC_PIS","Base de cálculo em quantidade - PIS/PASEP","N","-","03","N"
527+
"C820","181","07","ALIQ_PIS_QUANT","Alíquota do PIS/PASEP (em reais)","N","-","04","N"
528+
"C820","181","08","VL_PIS","Valor do PIS/PASEP","N","-","02","N"
529+
"C820","181","09","CST_COFINS","Código da Situação Tributária referente a COFINS","N","002*","-","S"
530+
"C820","181","10","QUANT_BC_COFI NS","Base de cálculo em quantidade – COFINS","N","-","03","N"
531+
"C820","181","11","ALIQ_COFINS_QU ANT","Alíquota da COFINS (em reais)","N","-","04","N"
532+
"C820","181","12","VL_COFINS","Valor da COFINS","N","-","02","N"
533+
"C820","181","13","COD_CTA","Código da conta analítica contábil debitada/creditada","C","255","-","N"
534+
"C830","183","02","NUM_PROC","Identificação do processo ou ato concessório","C","020","-","S"
535+
"C830","183","03","IND_PROC","Indicador da origem do processo: 1 - Justiça Federal; 3 – Secretaria da Receita Federal do Brasil 9 - Outros.","C","001*","-","S"
536+
"C860","184","02","COD_MOD","Código do modelo do documento fiscal, conforme a Tabela 4.1.1","C","002","-","S"
537+
"C860","184","03","NR_SAT","Número de Série do equipamento SAT","N","009","-","S"
538+
"C860","184","04","DT_DOC","Data de emissão dos documentos fiscais","N","008","-","N"
539+
"C860","184","05","DOC_INI","Número do documento inicial","N","009","-","N"
540+
"C860","184","06","DOC_FIM","Número do documento final","N","009","-","N"
541+
"C870","184","02","COD_ITEM","Código do item (campo 02 do Registro 0200)","C","060","-","N"
542+
"C870","184","03","CFOP","Código fiscal de operação e prestação","N","004*","-","S"
543+
"C870","184","04","VL_ITEM","Valor total dos itens","N","-","02","S"
544+
"C870","184","05","VL_DESC","Valor da exclusão/desconto comercial dos itens","N","-","02","N"
545+
"C870","184","06","CST_PIS","Código da Situação Tributária referente ao PIS/PASEP","N","002*","-","S"
546+
"C870","184","07","VL_BC_PIS","Valor da base de cálculo do PIS/PASEP","N","","02","N"
547+
"C870","185","08","ALIQ_PIS","Alíquota do PIS/PASEP (em percentual)","N","008","04","N"
548+
"C870","185","09","VL_PIS","Valor do PIS/PASEP","N","-","02","N"
549+
"C870","185","10","CST_COFINS","Código da Situação Tributária referente a COFINS","N","002*","-","S"
550+
"C870","185","11","VL_BC_COFINS","Valor da base de cálculo da COFINS","N","","02","N"
551+
"C870","185","12","ALIQ_COFINS","Alíquota da COFINS (em percentual)","N","008","04","N"
552+
"C870","185","13","VL_COFINS","Valor da COFINS","N","-","02","N"
553+
"C870","185","14","COD_CTA","Código da conta analítica contábil debitada/creditada","C","255","-","N"
554+
"C880","188","02","COD_ITEM","Código do item (campo 02 do Registro 0200)","C","060","-","N"
555+
"C880","188","03","CFOP","Código fiscal de operação e prestação","N","004*","-","S"
556+
"C880","188","04","VL_ITEM","Valor total dos itens","N","-","02","S"
557+
"C880","188","05","VL_DESC","Valor da exclusão/desconto comercial dos itens","N","-","02","N"
558+
"C880","188","06","CST_PIS","Código da Situação Tributária referente ao PIS/PASEP","N","002*","-","S"
559+
"C880","188","07","QUANT_BC_PIS","Base de cálculo em quantidade - PIS/PASEP","N","-","03","N"
560+
"C880","188","08","ALIQ_PIS_QUANT","Alíquota do PIS/PASEP (em reais)","N","-","04","N"
561+
"C880","188","09","VL_PIS","Valor do PIS/PASEP","N","-","02","N"
562+
"C880","188","10","CST_COFINS","Código da Situação Tributária referente a COFINS","N","002*","-","S"
563+
"C880","188","11","QUANT_BC_COFI NS","Base de cálculo em quantidade – COFINS","N","-","03","N"
564+
"C880","188","12","ALIQ_COFINS_QU ANT","Alíquota da COFINS (em reais)","N","-","04","N"
565+
"C880","188","13","VL_COFINS","Valor da COFINS","N","-","02","N"
566+
"C880","188","14","COD_CTA","Código da conta analítica contábil debitada/creditada","C","255","-","N"
567+
"C890","190","02","NUM_PROC","Identificação do processo ou ato concessório","C","020","-","S"
568+
"C890","191","03","IND_PROC","Indicador da origem do processo: 1 - Justiça Federal; 3 – Secretaria da Receita Federal do Brasil 9 - Outros.","C","001*","-","S"
494569
"C990","191","02","QTD_LIN_C","Quantidade total de linhas do Bloco C","N","-","-","S"
495570
"D001","193","02","IND_MOV","Indicador de movimento: 0- Bloco com dados informados; 1- Bloco sem dados informados","C","001","-","S"
496571
"D010","193","02","CNPJ","Número de inscrição do estabelecimento no CNPJ.","N","014*","-","S"

specs/efd_pis_cofins/efd_pis_cofins_fields.csv

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -491,6 +491,81 @@
491491
"C605","7","COD_CTA","char","False","255","","C","N","Código da conta analítica contábil debitada/creditada"
492492
"C609","2","NUM_PROC","char","True","020","","C","S","Identificação do processo ou ato concessório"
493493
"C609","3","IND_PROC","char","True","001*","","C","S","Indicador da origem do processo: 1 - Justiça Federal; 3 – Secretaria da Receita Federal do Brasil 9 – Outros."
494+
"C800","2","COD_MOD","char","True","002","","C","S","Código do modelo do documento fiscal, conforme a Tabela 4.1.1"
495+
"C800","3","COD_SIT","int","True","002","","N","S","Código da situação do documento fiscal, conforme a Tabela 4.1.2"
496+
"C800","4","NUM_CFE","int","True","009","","N","S","Número do Cupom Fiscal Eletrônico"
497+
"C800","5","DT_DOC","date","True","008","","N","S","Data da emissão do Cupom Fiscal Eletrônico"
498+
"C800","6","VL_CFE","float","True","","02","N","S","Valor total do Cupom Fiscal Eletrônico"
499+
"C800","7","VL_PIS","float","False","","02","N","N","Valor total do PIS"
500+
"C800","8","VL_COFINS","float","False","","02","N","N","Valor total da COFINS"
501+
"C800","9","CNPJ_CPF","int","False","14","","N","N","CNPJ ou CPF do destinatário"
502+
"C800","10","NR_SAT","int","False","009","","N","N","Número de Série do equipamento SAT"
503+
"C800","11","CHV_CFE","int","False","044","","N","N","Chave do Cupom Fiscal Eletrônico"
504+
"C800","12","VL_DESC","float","False","","02","N","N","Valor total do desconto/exclusão sobre item"
505+
"C800","13","VL_MERC","float","False","","02","N","N","Valor total das mercadorias e serviços"
506+
"C800","14","VL_OUT_DA","float","False","","02","N","N","Valor de outras desp. Acessórias (acréscimo)"
507+
"C800","15","VL_ICMS","float","False","","02","N","N","Valor do ICMS"
508+
"C800","16","VL_PIS_ST","float","False","","02","N","N","Valor total do PIS retido por subst. trib."
509+
"C800","17","VL_COFINS_ST","float","False","","02","N","N","Valor total da COFINS retido por subst. trib."
510+
"C810","2","CFOP","int","True","004","","N","S","Código fiscal de operação e prestação"
511+
"C810","3","VL_ITEM","float","True","","02","N","S","Valor total dos itens"
512+
"C810","4","COD_ITEM","char","False","060","","C","N","Código do item (campo 02 do Registro 0200)"
513+
"C810","5","CST_PIS","int","True","002*","","N","S","Código da Situação Tributária referente ao PIS/PASEP"
514+
"C810","6","VL_BC_PIS","float","False","","02","N","N","Valor da base de cálculo do PIS/PASEP"
515+
"C810","7","ALIQ_PIS","float","False","008","04","N","N","Alíquota do PIS/PASEP (em percentual)"
516+
"C810","8","VL_PIS","float","False","","02","N","N","Valor do PIS/PASEP"
517+
"C810","9","CST_COFINS","int","True","002*","","N","S","Código da Situação Tributária referente a COFINS"
518+
"C810","10","VL_BC_COFINS","float","False","","02","N","N","Valor da base de cálculo da COFINS"
519+
"C810","11","ALIQ_COFINS","float","False","008","04","N","N","Alíquota da COFINS (em percentual)"
520+
"C810","12","VL_COFINS","float","False","","02","N","N","Valor da COFINS"
521+
"C810","13","COD_CTA","char","False","255","","C","N","Código da conta analítica contábil debitada/creditada"
522+
"C820","2","CFOP","int","True","004*","","N","S","Código fiscal de operação e prestação"
523+
"C820","3","VL_ITEM","float","True","","02","N","S","Valor total dos itens"
524+
"C820","4","COD_ITEM","char","False","060","","C","N","Código do item (campo 02 do Registro 0200)"
525+
"C820","5","CST_PIS","int","True","002*","","N","S","Código da Situação Tributária referente ao PIS/PASEP"
526+
"C820","6","QUANT_BC_PIS","float","False","","03","N","N","Base de cálculo em quantidade - PIS/PASEP"
527+
"C820","7","ALIQ_PIS_QUANT","float","False","","04","N","N","Alíquota do PIS/PASEP (em reais)"
528+
"C820","8","VL_PIS","float","False","","02","N","N","Valor do PIS/PASEP"
529+
"C820","9","CST_COFINS","int","True","002*","","N","S","Código da Situação Tributária referente a COFINS"
530+
"C820","10","QUANT_BC_COFINS","float","False","","03","N","N","Base de cálculo em quantidade – COFINS"
531+
"C820","11","ALIQ_COFINS_QUANT","float","False","","04","N","N","Alíquota da COFINS (em reais)"
532+
"C820","12","VL_COFINS","float","False","","02","N","N","Valor da COFINS"
533+
"C820","13","COD_CTA","char","False","255","","C","N","Código da conta analítica contábil debitada/creditada"
534+
"C830","2","NUM_PROC","char","True","020","","C","S","Identificação do processo ou ato concessório"
535+
"C830","3","IND_PROC","char","True","001*","","C","S","Indicador da origem do processo: 1 - Justiça Federal; 3 – Secretaria da Receita Federal do Brasil 9 - Outros."
536+
"C860","2","COD_MOD","char","True","002","","C","S","Código do modelo do documento fiscal, conforme a Tabela 4.1.1"
537+
"C860","3","NR_SAT","int","True","009","","N","S","Número de Série do equipamento SAT"
538+
"C860","4","DT_DOC","date","False","008","","N","N","Data de emissão dos documentos fiscais"
539+
"C860","5","DOC_INI","int","False","009","","N","N","Número do documento inicial"
540+
"C860","6","DOC_FIM","int","False","009","","N","N","Número do documento final"
541+
"C870","2","COD_ITEM","char","False","060","","C","N","Código do item (campo 02 do Registro 0200)"
542+
"C870","3","CFOP","int","True","004*","","N","S","Código fiscal de operação e prestação"
543+
"C870","4","VL_ITEM","float","True","","02","N","S","Valor total dos itens"
544+
"C870","5","VL_DESC","float","False","","02","N","N","Valor da exclusão/desconto comercial dos itens"
545+
"C870","6","CST_PIS","int","True","002*","","N","S","Código da Situação Tributária referente ao PIS/PASEP"
546+
"C870","7","VL_BC_PIS","float","False","","02","N","N","Valor da base de cálculo do PIS/PASEP"
547+
"C870","8","ALIQ_PIS","float","False","008","04","N","N","Alíquota do PIS/PASEP (em percentual)"
548+
"C870","9","VL_PIS","float","False","","02","N","N","Valor do PIS/PASEP"
549+
"C870","10","CST_COFINS","int","True","002*","","N","S","Código da Situação Tributária referente a COFINS"
550+
"C870","11","VL_BC_COFINS","float","False","","02","N","N","Valor da base de cálculo da COFINS"
551+
"C870","12","ALIQ_COFINS","float","False","008","04","N","N","Alíquota da COFINS (em percentual)"
552+
"C870","13","VL_COFINS","float","False","","02","N","N","Valor da COFINS"
553+
"C870","14","COD_CTA","char","False","255","","C","N","Código da conta analítica contábil debitada/creditada"
554+
"C880","2","COD_ITEM","char","False","060","","C","N","Código do item (campo 02 do Registro 0200)"
555+
"C880","3","CFOP","int","True","004*","","N","S","Código fiscal de operação e prestação"
556+
"C880","4","VL_ITEM","float","True","","02","N","S","Valor total dos itens"
557+
"C880","5","VL_DESC","float","False","","02","N","N","Valor da exclusão/desconto comercial dos itens"
558+
"C880","6","CST_PIS","int","True","002*","","N","S","Código da Situação Tributária referente ao PIS/PASEP"
559+
"C880","7","QUANT_BC_PIS","float","False","","03","N","N","Base de cálculo em quantidade - PIS/PASEP"
560+
"C880","8","ALIQ_PIS_QUANT","float","False","","04","N","N","Alíquota do PIS/PASEP (em reais)"
561+
"C880","9","VL_PIS","float","False","","02","N","N","Valor do PIS/PASEP"
562+
"C880","10","CST_COFINS","int","True","002*","","N","S","Código da Situação Tributária referente a COFINS"
563+
"C880","11","QUANT_BC_COFINS","float","False","","03","N","N","Base de cálculo em quantidade – COFINS"
564+
"C880","12","ALIQ_COFINS_QUANT","float","False","","04","N","N","Alíquota da COFINS (em reais)"
565+
"C880","13","VL_COFINS","float","False","","02","N","N","Valor da COFINS"
566+
"C880","14","COD_CTA","char","False","255","","C","N","Código da conta analítica contábil debitada/creditada"
567+
"C890","2","NUM_PROC","char","True","020","","C","S","Identificação do processo ou ato concessório"
568+
"C890","3","IND_PROC","char","True","001*","","C","S","Indicador da origem do processo: 1 - Justiça Federal; 3 – Secretaria da Receita Federal do Brasil 9 - Outros."
494569
"C990","2","QTD_LIN_C","int","True","","","N","S","Quantidade total de linhas do Bloco C"
495570
"D001","2","IND_MOV","char","True","001","","C","S","Indicador de movimento: 0- Bloco com dados informados; 1- Bloco sem dados informados"
496571
"D010","2","CNPJ","int","True","014*","","N","S","Número de inscrição do estabelecimento no CNPJ."

specs/efd_pis_cofins/efd_pis_cofins_registers.csv

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,14 @@
6767
"C","C601","Complemento da Consolidação Diária (Códigos 06, 29 e 28) – Documentos de Saidas - PIS/PASEP","4","1:N"
6868
"C","C605","Complemento da Consolidação Diária (Códigos 06, 29 e 28) – Documentos de Saidas – COFINS","4","1:N"
6969
"C","C609","Processo Referenciado","4","1:N"
70+
"C","C800","Cupom Fiscal Eletrônico – CF-e (Código 59)","3","1:N"
71+
"C","C810","Detalhamento do Cupom Fiscal Eletrônico – CF-e (Código 59) – PIS/PASEP e COFINS","4","1:N"
72+
"C","C820","Detalhamento do Cupom Fiscal Eletrônico – CF-e (código 59) – PIS/PASEP e COFINS Apurado por Unidade de Medida de Produto","4","1:N"
73+
"C","C830","Processo Referenciado","4","1:N"
74+
"C","C860","Identificação do Equipamento SAT- CF-e (Código 59) (*) A partir da versão 2.11 do PVA (Período de apuração a partir de maio/2015)","3","1:N"
75+
"C","C870","Detalhamento do Cupom Fiscal Eletrônico (Código 59) – PIS/PASEP e COFINS","4","1:N"
76+
"C","C880","Detalhamento do Cupom Fiscal Eletrônico (Código 59) – PIS/PASEP","4","1:N"
77+
"C","C890","Processo Referenciado","4","1:N"
7078
"C","C990","Encerramento do Bloco C","1","1"
7179
"D","D001","Abertura do Bloco D","1","1"
7280
"D","D010","Identificação do Estabelecimento","2","V"

0 commit comments

Comments
 (0)